leetcode--Merge Sorted Array
2017-08-08 10:03
405 查看
Given two sorted integer arrays nums1 and nums2, merge nums2 intonums1 as one sorted array.
Note:
You may assume that nums1 has enough space (size that is greater or equal tom + n) to hold additional elements from nums2. The number of elements initialized innums1 and nums2 are m and n respectively.
题意:合并两个排序的数组,要求新数组也是排序的
分类:数组,双指针
解法1:从后向前合并,这样避免了覆盖的问题。
[java] view
plain copy
public class Solution {
public void merge(int[] nums1, int m, int[] nums2, int n) {
int len = nums1.length;
int index = len-1;
int i=m-1,j=n-1;
while(i>=0&&j>=0){
if(nums1[i]>nums2[j]){
nums1[index] = nums1[i];
i--;
}else{
nums1[index] = nums2[j];
j--;
}
index--;
}
while(i>=0){
nums1[index--]=nums1[i--];
}
while(j>=0){
nums1[index--]=nums2[j--];
}
}
}
[java] view
plain copy
public class Solution {
public void merge(int[] nums1, int m, int[] nums2, int n) {
m = m-1;
n = n-1;
int i=nums1.length-1;
for(;m>=0&&n>=0&&i>0;i--){
if(nums1[m]>nums2
){
nums1[i] = nums1[m];
m--;
}else{
nums1[i] = nums2
;
n--;
}
}
while(m>=0){
nums1[i] = nums1[m];
m--;i--;
}
while(n>=0){
nums1[i] = nums2
;
n--;i--;
}
}
}
原文链接http://blog.csdn.net/crazy__chen/article/details/46377359
Note:
You may assume that nums1 has enough space (size that is greater or equal tom + n) to hold additional elements from nums2. The number of elements initialized innums1 and nums2 are m and n respectively.
题意:合并两个排序的数组,要求新数组也是排序的
分类:数组,双指针
解法1:从后向前合并,这样避免了覆盖的问题。
[java] view
plain copy
public class Solution {
public void merge(int[] nums1, int m, int[] nums2, int n) {
int len = nums1.length;
int index = len-1;
int i=m-1,j=n-1;
while(i>=0&&j>=0){
if(nums1[i]>nums2[j]){
nums1[index] = nums1[i];
i--;
}else{
nums1[index] = nums2[j];
j--;
}
index--;
}
while(i>=0){
nums1[index--]=nums1[i--];
}
while(j>=0){
nums1[index--]=nums2[j--];
}
}
}
[java] view
plain copy
public class Solution {
public void merge(int[] nums1, int m, int[] nums2, int n) {
m = m-1;
n = n-1;
int i=nums1.length-1;
for(;m>=0&&n>=0&&i>0;i--){
if(nums1[m]>nums2
){
nums1[i] = nums1[m];
m--;
}else{
nums1[i] = nums2
;
n--;
}
}
while(m>=0){
nums1[i] = nums1[m];
m--;i--;
}
while(n>=0){
nums1[i] = nums2
;
n--;i--;
}
}
}
原文链接http://blog.csdn.net/crazy__chen/article/details/46377359
相关文章推荐
- 【leetcode c++】88 Merge Sorted Array
- 【LeetCode】-Merge Sorted Array
- leetcode 之 Merge Sorted Array
- LeetCode OJ Merge Sorted Array
- [Leetcode] Merge Sorted Array
- leetcode_Merge Sorted Array
- [LeetCode] Merge Sorted Array
- leetcode 88 Merge Sorted Array
- leetcode[88]:Merge Sorted Array
- LeetCode Merge Sorted Array
- Leetcode:merge_sorted_array
- leetcode Merge Sorted Array
- LeetCode: Merge Sorted Array
- [LeetCode] Merge Sorted Array
- LeetCode(40)-Merge Sorted Array
- [leetcode]Merge Sorted Array @ Python
- LeetCode4/88 Median of Two Sorted Arrays/Merge Sorted Array
- leetcode-88 Merge Sorted Array
- [LeetCode]题解(python):088-Merge Sorted Array
- [LeetCode]Merge Sorted Array