建网站一般多少钱,网站建设上传服务器步骤,郑州企业推广,google app下载题目 如果矩阵中的许多系数都为零#xff0c;那么该矩阵就是稀疏的。对稀疏现象有兴趣是因为它的开发可以带来巨大的计算节省#xff0c;并且在许多大的实践中都会出现矩阵稀疏的问题。给定一个矩阵#xff0c; 现在需要逐行和逐列地扫描矩阵#xff0c;如果某一行或者某一…题目 如果矩阵中的许多系数都为零那么该矩阵就是稀疏的。对稀疏现象有兴趣是因为它的开发可以带来巨大的计算节省并且在许多大的实践中都会出现矩阵稀疏的问题。给定一个矩阵 现在需要逐行和逐列地扫描矩阵如果某一行或者某一列内存在连续出现的0的个数超过了行宽或者列宽的 一半W/2整除)则认为该行或者该列是稀疏的。 扫描给定的矩阵输出稀疏的行数和列数 输入描述 第一行输入为M和N表示矩阵的大小M * N0M 1000 N 100 接下来M行输入为矩阵的成员每行N个成员矩阵成员都是有符号整数范围-32768到32767 输出描述 输出两行第一行表示稀疏行的个数第二行表示稀疏列的个数 示例1: 输入 3 3 1 0 0 0 1 0 0 0 1 输出 3 3 说明 给定的3 * 3矩阵里每一行和每一列内都存在2个0 行宽3列宽3[3/2] 1,因此稀疏行有3个稀疏列有3个。 示例2: 输入 5 3 -1 0 1 0 0 0 -1 0 0 0 -1 0 0 0 0 输出 5 3 说明 给定的 5 * 3矩阵每行里面0的个数大于等于1表示稀疏行每列里面0的个数大于等于2表示稀疏列所以有5个稀疏行3个稀疏列 思路 简单题直接遍历矩阵统计其每行、每列为0的个数即可。 最后判断是否大于行宽/列宽的一般得出稀疏行、列的个数 题解
package hwod;import java.util.Scanner;public class MatrixScan {public static void main(String[] args) {Scanner sc new Scanner(System.in);String[] firstLines sc.nextLine().split( );int m Integer.parseInt(firstLines[0]);int n Integer.parseInt(firstLines[1]);int[][] matrix new int[m][n];for (int i 0; i m; i) {String[] rows sc.nextLine().split( );for (int j 0; j n; j) {matrix[i][j] Integer.parseInt(rows[j]);}}int[] res getRAndC(matrix);System.out.println(res[0]);System.out.println(res[1]);}private static int[] getRAndC(int[][] matrix) {int m matrix.length, n matrix[0].length;int[] rows new int[m];int[] cols new int[n];for (int i 0; i m; i) {for (int j 0; j n; j) {if (matrix[i][j] 0) {rows[i];cols[j];}}}int rowRes 0, colRes 0;int rowThreshold n / 2, colThreshold m / 2;for (int r : rows) {if(rrowThreshold) rowRes;}for (int c : cols) {if(ccolThreshold) colRes;}return new int[]{rowRes, colRes};}
}推荐
如果你对本系列的其他题目感兴趣可以参考华为OD机试真题及题解JAVA查看当前专栏更新的所有题目。