64,199
社区成员
发帖
与我相关
我的任务
分享遍历统计负数个数即可。
class Solution {
public int countNegatives(int[][] grid) {
int res = 0;
for (int[] ints : grid) {
for (int anInt : ints) {
if (anInt < 0)
res++;
}
}
return res;
}
}
主对角线、副对角线相加即可。
如果是奇数矩阵,中间元素会多算一次,减去即可。
class Solution {
public int diagonalSum(int[][] mat) {
int length = mat.length;
int res = 0;
//主对角线
for (int i = 0; i < length; i++) {
res += mat[i][i];
}
//副对角线
for (int i = 0; i < length; i++) {
res += mat[i][length - 1 - i];
}
//奇数方阵
if (length % 2 == 1){
res -= mat[length / 2][length / 2];
}
return res;
}
}
每一行是一个客户,统计每一行所有的值之和,就是这个客户的资产总量。
返回最大的即可。
class Solution {
public int maximumWealth(int[][] accounts) {
//遍历每一行,返回最大值即可
int length = accounts.length;
int[] everyOne = new int[length];
int bankNum = accounts[0].length;
for (int i = 0; i < length; i++) {
for (int j = 0; j < bankNum; j++) {
everyOne[i] += accounts[i][j];
}
}
int res = everyOne[0];
for (int i : everyOne) {
if (res < i)
res = i;
}
return res;
}
}
对于除左边和上边这一圈的元素来说,找到剩下的元素依次遍历,看该元素和它左上角的元素相不相等即可。
class Solution {
public boolean isToeplitzMatrix(int[][] matrix) {
int r = matrix.length;
int c = matrix[0].length;
for (int i = 1; i < r; i++) {
for (int j = 1; j < c; j++) {
if (matrix[i][j] != matrix[i - 1][j - 1]) {
return false;
}
}
}
return true;
}
}