我可以使用if循环查找numbers<10
并将其与count++
一起存储;但就是这样。
我想在任何语言中看到算法(我可以做一些C ++,java),所以我可以使用它。
浏览每一行并记录少于10的数字。
将它存放在一边,转到下一行,做同样的事情,比较,扔出较低的一行。
答案 0 :(得分:4)
public int findMostLowNumbersRow(double[][] arr, double threshold) {
int maxLowNumbers = 0;
int rowNum = -1;
for (int i = 0; i < arr.length; ++i) {
int count = countLowNumbers(arr[i], threshold);
if (count > maxLowNumbers) {
rowNum = i;
maxLowNumbers = count;
}
}
return rowNum;
}
public int countLowNumbers(double[] row, double threshold) {
int count = 0;
for (double number : row) {
if (number < threshold) {
++count;
}
}
return count;
}
用
打电话findMostLowNumbersRow(yourMatrix, 10.0);
该函数返回包含小于10的最大数字的行的编号。
答案 1 :(得分:2)
int max_count = 0;
for (int i=0; i<MATRIX_SIZE; i++) {
int tmp_count = 0;
for (int j=0; j<MATRIX_SIZE; j++) {
if (matrix[i][j] > 10) tmp_count++;
}
if (tmp_count > max_count) max_count = tmp_count;
}
// use max_count
答案 2 :(得分:1)
它类似于以下内容:
import static java.lang.System.out;
public class Zeug {
public static void main(String[] args) {
final int SIZE = 10;
int[][] matrix = new int[SIZE][SIZE];
for(int i=0;i<matrix.length;i++) {
for(int j=0;j<matrix.length;j++) {
matrix[i][j] = (int) Math.round(Math.random() * 23);
}
}
int max=0;
for(int i=0;i<matrix.length;i++) {
int count=0;
for(int j=0;j<matrix.length;j++) {
if(matrix[i][j]<10) {
count++;
}
}
max = Math.max(count, max);
}
out.println(max);
}
}
答案 3 :(得分:0)
写一些伪代码,它会更清晰:
你需要两个嵌套循环和一些计数器。
答案 4 :(得分:0)
既然你说过任何语言,我们在这里用Ruby
matrix.max { |a,b| a.select{|e|e<10}.size <=> b.select{|e|e<10}.size }
假设矩阵是一个数组数组。