088J. Merge Sorted Array
https://leetcode.com/problems/merge-sorted-array/
Method Best:
这个题有点垃圾。 总之就是从尾巴开始比,这样对于这个题比较有用,因为数组不像 LinkedList 比较容易插入。除此之外没啥特别之处。
class Solution {
public void merge(int[] nums1, int m, int[] nums2, int n) {
int p = m + n - 1;
int p1 = m - 1;
int p2 = n - 1;
while(p1 > -1 || p2 > -1){
int n1 = p1 > -1? nums1[p1] : Integer.MIN_VALUE;
int n2 = p2 > -1? nums2[p2] : Integer.MIN_VALUE;
if(n1 > n2){
nums1[p--] = n1;
p1--;
}else{
nums1[p--] = n2;
p2--;
}
}
}
}
确实有点烦
class Solution {
public void merge(int[] nums1, int m, int[] nums2, int n) {
int p1 = m - 1;
int p2 = n - 1;
for (int cur = m + n - 1; cur >= 0; cur--) {
if (p1 < 0 || (p2 >= 0 && nums1[p1] < nums2[p2]) ) {
nums1[cur] = nums2[p2];
p2--;
} else {
nums1[cur] = nums1[p1];
p1--;
}
}
}
Last updated
Was this helpful?