【发布时间】:2020-03-15 22:24:13
【问题描述】:
我是编程新手,想养成良好的习惯,我可以用另一种更快的方式做到这一点吗?
int[] getNegatives(int[][] m) {
int countNegatives = 0; // used to create length of array
for (int i = 0; i < m.length; i++) {
for (int j = 0; j < m[i].length; j++) {
if (m[i][j] < 0) {
countNegatives += 1;
}
}
}
int[] arr = new int[countNegatives];
int increase = 0; // used to increment index of array
for (int i = 0; i < m.length; i++) {
for (int j = 0; j < m[i].length; j++) {
if (m[i][j] < 0) {
arr[increase] = m[i][j];
increase += 1;
}
}
}
return arr;
}
【问题讨论】:
-
您可以使用arraylist,它基本上是一个动态数组,在需要时会增加大小,使用它您只需要遍历二维数组一次。
-
codereview.stackexchange.com 可能更适合回答这个问题。