找到具有大多数数字的矩阵行< 10方法

时间:2009-12-11 10:25:36

标签: java matrix

我可以使用if循环查找numbers<10并将其与count++一起存储;但就是这样。

我想在任何语言中看到算法(我可以做一些C ++,java),所以我可以使用它。

浏览每一行并记录少于10的数字。

将它存放在一边,转到下一行,做同样的事情,比较,扔出较低的一行。

5 个答案:

答案 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)

写一些伪代码,它会更清晰:

  1. 将最低行的索引设置为等于第一行。
  2. 将低于阈值的最大值设置为零。
  3. 遍历所有行。
  4. 将低于阈值的值计数设置为零。
  5. 循环遍历当前行中的所有列,并计算低于阈值的值数。
  6. 如果低于当前阈值的值的计数大于最大计数,则将最低行的索引设置为等于当前阈值。
  7. 你需要两个嵌套循环和一些计数器。

答案 4 :(得分:0)

既然你说过任何语言,我们在这里用Ruby

matrix.max { |a,b| a.select{|e|e<10}.size <=> b.select{|e|e<10}.size }

假设矩阵是一个数组数组。