Java实现寻找二维数组的鞍点
一、题目描述:
定义一个二维数组用于存储一个4×4 矩阵的元素值,并找出这个矩阵的所有鞍点,然后输出鞍点的位置及值。
二、鞍点解释
- ①在微分方程中,沿着某一方向是稳定的,另一条方向是不稳定的奇点,叫做鞍点。
- ②在泛函中,既不是极大值点也不是极小值点的临界点,叫做鞍点。
- ③在矩阵中,一个数在所在行中是最大值,在所在列中是最小值,则被称为鞍点。
- ④在物理上要广泛一些,指在一个方向是极大值,另一个方向是极小值的点。
三、分析
鞍点就是二维数组中一个元素既是它所在行的最大值,又是所在列的最小值。
- 算法思路:
①先寻找每一行的最大值
②记录每一行最大数的所在的列
③判断最大值在他所在的列是否也是最小值
④若是鞍点则输出鞍点所在位置及值,若不存在鞍点输出“没有鞍点”。
四、代码
package com.lyp.test;import java.util.Scanner;public class findSaddlePoint {public static void main(String[] args) {int s,min,max,count = 0;int[] a = new int[4];Scanner scanner = new Scanner(System.in);//定义4*4数组int[][] array = new int[4][4];//接收数组的输入System.out.println("请输入数组元素:");for (int i = 0; i < 4; i++) {for (int j = 0; j < 4; j++) {System.out.print("请输入第"+(i+1)+"行第"+(j+1)+"个元素:");array[i][j] = scanner.nextInt();}}//打印数组for (int i = 0; i < 4; i++) {for (int j = 0; j < 4; j++) {System.out.print(array[i][j]+" ");}System.out.println();}//寻找鞍点for (int i = 0; i < 4; i++) {max = array[i][0];for (int j = 0; j < 4; j++) { //找每行的最大值if (array[i][j] > max){max = array[i][j];}}s = 0;for (int j = 0; j < 4; j++) { //将最大值所在的列存入a[]中if (array[i][j] == max){a[s] = j;s++; //s的值是最大值的个数}}min = max;for (int j = 0; j < s; j++) { //有几个最大值,就进行几次循环for (int k = 0; k < 4; k++) { //判断这个行的最大值是不是列最小if(min > array[k][a[j]]) { //如果不是,则判断下一个break;}if (k == 3){ //说明是鞍点System.out.println("鞍点为第"+(i+1)+"行第"+(a[j] + 1)+"列的元素:"+array[i][a[j]]);count++;}}}}if(count == 0){System.out.println("没有鞍点");}}
}
五、输出结果
示例一:
示例二:
示例三:
示例四:
Java实现寻找二维数组的鞍点相关推荐
- java利用二维数组查找鞍点_java找二维数组的鞍点
LOGO 制作者: 制作者: 班级: 班级: 学号: 学号: 指导老师: 指导老师: 一.设计要求 求一个二维数组中的鞍点,即 该位置上的元素在该...... 54,98 19,32,34,65,34 ...
- java不等长二维数组_Java中关于二维数组的理解与使用
今天练习的时候遇到一个题目,题目需求是这样的: 需求说明: 根据3个班各5名学生某门课程的成绩,正确使用二维数组计算如图所示3个班各自的总成绩 分析: 要实现这个功能需要存储两个信息: 一个是班级信息 ...
- java创建动态二维数组
java创建动态二维数组 //声明Scanner对象,获取键盘输入值Scanner sc = new Scanner(System.in);int n = sc.nextInt();int m = s ...
- C语言练习二 :找出一个二维数组的鞍点
1.鞍点的定义:某个元素在其所在行中最大.所在列中最小. 2.程序代码 //求一个二维数组的鞍点 二维数组可能没有鞍点,如果有,只能有一个 #include<stdio.h> int ma ...
- C语言经典100题——求一个二维数组的鞍点
<1>题目描述 找一个二维数组中的鞍点,即该位置上的元素在该行上最大.在该列上最小.也可能没有鞍点 1 2 3 4 5 6 7 8 9 //3为该二维数组中鞍点 <2>思路分析 ...
- JAVA复习(二维数组——快排——迷宫)
二维数组: (了解) 定义: 一维数组: int[] array=new int[3] ;开辟了3个空间的int类型的数组 二维数组: int[][] 对于二维数组的初始化定义: 数组的动态初始化: ...
- 求马鞍点java_二维数组马鞍点求解算法
若在矩阵A 中存在一个元素ai,j(0≤i≤n-1,0≤j≤m-1),该元素是第i行元素中最小值且又是第j 列元素中最大值,则称此元素为该矩阵的一个马鞍点.假设以二维数组存储矩阵A,试设计一个求该矩阵 ...
- C++/java/python 创建二维数组
创建了一个M×N的二维数组 C++ vector<vector<int>> ans(M,vector<int>(N, 0)); Java int[][] ans = ...
- 【转】java中定义二维数组的几种写法
原文链接 注:以下的 type[][] var 也可以这样申明 type var[][] type为数组的类型,var为变量名 写法一:行列固定的数组 //定义二维数组写法1 class Test { ...
最新文章
- CDN全站加速助力企业云上升级
- 唠唠面试常问的:面向对象六大原则
- 在Window上使用Jenkins自动发布Java工件
- 洛谷P3803 【模板】多项式乘法(FFT)
- 【工程项目经验】dmesg查看linux系统缓存日志
- idea导入gradle项目ctrl无法定位问题
- Julia : DataFrame与replace、delete
- 2021-02-24 PMP 群内练习题 - 光环
- SQL - 多表关联
- Keep in mind用法
- 把sql中的image数据在网页中显示成图片
- 夜晚网速变慢与网站服务器开机数量减少有关,网速变慢的原因及解决办法
- 操作系统进程线程区别、并发和并行、内存和外存
- html默认office打开如何更改,怎么设置office默认打开方式,修改office的默认打开方式...
- 123456789 往这串数字里插入3个乘号,使得结果最大
- 华中科技大学--数据结构课程设计 ---红楼梦人物关系分析
- 电机标幺化、PI标幺化、锁相环PLL标幺化 详解电机模型相关标幺化处理 电流环PI控制器的标幺化处理
- bs4 Beautiful Soup详解
- P1862 输油管道问题
- 2016.04.28,英语,《Vocabulary Builder》Unit 20
热门文章
- PTA -- 题附代码(形状继承) (图形继承与多态)
- CPT、CPM、CPC、CPA、CPS
- Spark-core项目实战——电商用户行为数据分析
- 数据结构:删除顺序表中小于min和大于max的数(不需要从大到小排列依然可以)
- 20175227张雪莹 2018-2019-2 《Java程序设计》第九周学习总结
- 强生稳豪倍优型血糖仪试纸_强生稳豪倍优型血糖仪(送50片试纸)
- 基于BQ76PL455的BMS电路板设计
- linux superblock 时间,e2fsck: Bad magic number in super-block_Linux
- 世界各国新娘幸福瞬间
- 阿里女合伙人身价达40亿,曾经月薪500小小前台,如何成功逆袭?