数组:1)注意溢出和边界
2)one by one
3)可one by one 动态分治操作
4)注意数组长度和下标的利用
5)数组下标指针的利用与控制
6)注意尾插法的应用
class Solution {
public void merge(int[] nums1, int m, int[] nums2, int n) {
int i=m-1,j=n-1;
int index=m+n-1;
while(i>=0&&j>=0){
nums1[index--]=(nums1[i]>=nums2[j]?nums1[i--]:nums2[j--]);
}
while(j>=0){
nums1[index--]=nums2[j--];
}
}
}
这个方法中让我心虚(蓝瘦)的点在于:
数组越界的问题:即nums1[i--]的构造
首先明确这个代码结构的构造在于先nums1[i](只需保证i>=0即可)
总之:一步一步,一个一个解决