public void merge(int[] nums1, int m, int[] nums2, int n) {
//1.合并 2.递增 3.空的情况
if (m == 0) {//nums1为空
for (int i = 0; i < n; i++) {
nums1[i] = nums2[i];
}
return;
}
if (n == 0) {//nums2为空
return;
}
int j = 0;//num1中0的地方替换为num2
for (int i = m; i < m + n; i++) {
if (nums1[i] == 0) {
nums1[i] = nums2[j++];
continue;
}
}
Arrays.sort(nums1);
}
public int oddCells(int m, int n, int[][] indices) {
//indices包含[][], ri和ci分别表示指定的行和列,可能存在多个
//数组,如0,1为0行+1,1列+1.
int[]ri=new int[m];//存储第几行单元+1
int[]ci=new int[n];//存储第几列单元+1
for (int i = 0; i < indices.length; i++) {//二维数组包含i个个数为2的一维数组
//indices[i][0]和indices[i][1]分别表示几行几列的值+1
ri[indices[i][0]]++;//行取indices[i][0]时加+1
ci[indices[i][1]]++;//列取indices[i][1]时加+1
}
int count=0;
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
//行和列加的求和即为该单元格一共增加的值
if ((ri[i]+ci[j])%2==1){
count++;
}
}
}
return count;
}