文档章节

输入一个四行五列的矩阵,找出每列最大的两个数

随风1993
 随风1993
发布于 2017/05/25 17:12
字数 410
阅读 10
收藏 0

import java.util.Scanner;

/**
 * @author tj
 * 
题目描述:
        输入一个四行五列的矩阵,找出每列最大的两个数。
输入:
        输入第一行包括一个整数n(1<=n<=1000),接下来的四行每行包括五个整数。代表一个四行五列的矩阵,矩阵元素全部是整数。
输出:
        可能有多组测试数据,对于每组数据,按照样例输出的格式将每列最大的两个数输出,如果最大的两个数中的一个数在这一列中有多个相同的值,则行值取行值小的那一个。
        输出时要保留原矩阵的行列顺序,即在原矩阵中行值小的,在输出矩阵中的行值依然小。
样例输入:
    1
    1  2   4  9  8
    -1  4  9  8  8
    12  9  8  7  0
    7   8  9  7  0
样例输出:
    12 9 9 9 8 
    7 8 9 8 8 


 */
public class FindMax {
    
    public static void main(String[] args){
        Scanner cin = new Scanner(System.in);
        while(cin.hasNext()){
            int n = cin.nextInt();
            
            for(int i=0;i<n;i++){
                int[][] mar = new int[4][5];
                for(int j=0;j<4;j++){
                    for(int k=0;k<5;k++){
                        mar[j][k] = cin.nextInt();
                    }
                }
                
                int[] maxs = new int[5];
                for(int j=0;j<5;j++){
                    int max = mar[0][j];
                    for(int k=0;k<4;k++){
                        if(mar[k][j]>max){
                            max = mar[k][j];
                        }
                    }
                    maxs[j] = max;
                }
                
                int[] maxs2 = new int[5];
                for(int j=0;j<5;j++){
                    int max = mar[0][j];
                    for(int k=0;k<4;k++){
                        if(mar[k][j]>max&&mar[k][j]!=maxs[j]){
                            max = mar[k][j];
                        }
                    }
                    maxs2[j] = max;
                }
                
                for(int j=0;j<5;j++){
                    System.out.print(maxs[j]+" ");
                    System.out.print(maxs2[j]+" ");
                }
            }
        }
    }

}
 

© 著作权归作者所有

共有 人打赏支持
上一篇: 单例模式
随风1993
粉丝 0
博文 9
码字总数 2110
作品 0
普陀
后端工程师
私信 提问
HAWQ + MADlib 玩转数据挖掘之(五)——奇异值分解实现推荐算法

一、奇异值分解简介 奇异值分解简称SVD(singular value decomposition),可以理解为:将一个比较复杂的矩阵用更小更简单的三个子矩阵的相乘来表示,这三个小矩阵描述了大矩阵重要的特性。S...

wzy0623
2017/07/20
0
0
算法知识梳理(5) - 数组第二部分

一、概要 本文介绍了有关数组的算法第一部分的代码实现,所有代码均可通过 在线编译器 直接运行,算法目录: 找到最小的个数 连续子数组的最大和 连续子数组的最大和(二维) 求数组当中的逆...

泽毛
2017/12/11
0
0
南阳OJ-最大和

传送:南阳OJ-104 最大和 时间限制:1000 ms | 内存限制:65535 KB 难度:5 描述 给定一个由整数组成二维矩阵(r*c),现在需要找出它的一个子矩阵,使得这个子矩阵内的所有元素之和最大,并把...

zhagoodwell
2017/09/17
0
0
50道Java基础编程练习题

50道经典Java编程练习题,将数学思维运用到编程中来。抱歉哈找不到文章的原贴了,有冒犯的麻烦知会声哈,这里为了做收藏用。 1.指数计算问题 有一对兔子,从出生后第3个月起每个月都生一对兔...

Java团长
2018/01/14
0
0
leetcode|初级算法-数组

01 起 最近“不务正业地”刷了一波leetcode上的算法题,初级算法已经刷完50%,战况如下, 刷题固然爽快,但及时总结才是进步之道,下面就数组部分的题目进行回顾和总结。 注意,刷题使用的语...

邓莎
2018/09/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Jmeter参数的AES加密使用

在Jmeter日常实践中,大家应该都遇到过接口传参需要加密的情况。以登陆为例,用户名和密码一般都需要进行加密传输,在服务端再进行解密,这样安全系数会更高,但在使用jmeter进行接口测试的时...

程序猿拿Q
23分钟前
2
0
MYSQL 日期函数 Date and Time Functions

Table 12.13 Date and Time Functions Name Description ADDDATE() Add time values (intervals) to a date value ADDTIME() Add time CONVERT_TZ() Convert from one time zone to another ......

_liucui_
30分钟前
2
0
Android代码混淆ProGuard工作原理简介

ProGuard能够对Java类中的代码进行压缩(Shrink),优化(Optimize),混淆(Obfuscate),预检(Preveirfy)。    1. 压缩(Shrink): 在压缩处理这一步中,用于检测和删除没有使用的类,字段...

SuShine
32分钟前
1
0
Idea 2018激活

教程地址: https://www.52pojie.cn/thread-781394-1-1.html 亲测可用

一个不正经的程序员
38分钟前
1
0
Android组件化开发实践和案例分享

目录介绍 1.为什么要组件化 1.1 为什么要组件化 1.2 现阶段遇到的问题 2.组件化的概念 2.1 什么是组件化 2.2 区分模块化与组件化 2.3 组件化优势好处 2.4 区分组件化和插件化 2.5 applicatio...

潇湘剑雨
38分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部