class Solution {
public void merge(int[] nums1, int m, int[] nums2, int n) {
if(n==0)return;
//把nums1中的元素后移,留出前置区域
for(int i=m-1;i>=0;i--){
nums1[i+n]=nums1[i];
}
int nums1_index =n;
int nums2_index = 0;
int merge_index = 0;
while(nums1_index<m+n&&nums2_index<n){
if(nums1[nums1_index]>nums2[nums2_index]){
nums1[merge_index]=nums2[nums2_index];
merge_index++;
nums2_index++;
}else{
nums1[merge_index]=nums1[nums1_index];
merge_index++;
nums1_index++;
}
}
while(nums2_index<n){
nums1[merge_index]=nums2[nums2_index];
merge_index++;
nums2_index++;
}
}
}
leetcode第88题合并两个有序数组
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- //联系人:石虎 QQ: 1224614774 昵称:嗡嘛呢叭咪哄 面试题: 怎样把两个有序数组合并成有序数组呢 ...