-
2020-05-06 17:08:52
/** * @author LLJ * @time 2020-5-6 17点06分 * @Description 给定一个数组,输出这个数组中的最大值和最小值 */ public class BigAndSmall4 { public static void main(String[] args) { int a[] = {6,34,23,41,87,3,7}; minMax(a); } public static void minMax(int a[]){ if(a == null || a.length == 0) return ; //思路: //用变量min来(代替)统计数组中的最小值 //用变量max来(代替)统计数组中的最大值 //先让min和max都(初始化值)等于a[0] //然后扫描数组中剩下的元素 // 如果某个元素的值比max更大,则把该元素的值赋值给max // 如果某个元素的值比min更小,则把该元素的值赋值给min //这样执行下去,当扫描完整个数组后, // min中保存的就是数组中最小的元素,max中保存的就是最大的元素 int min = a[0],max = a[0]; for (int i = 0; i < a.length; i++) { if(min > a[i]){ min = a[i]; continue; } if(max < a[i]){ max = a[i]; continue; } } System.out.println("数组中的最小数为:" + min); System.out.println("数组中的最大值为:" + max); } }
输出结果为:
数组中的最小数为:3
数组中的最大值为:87
更多相关内容 -
算出一组数组中最大值次大值最小值次小值c程序
2018-07-12 16:35:06算出一组数组中最大值次大值最小值次小值c程序,用于波形处理等场合 -
JAVA得到数组中最大值和最小值的简单实例
2020-09-04 06:22:02主要介绍了JAVA得到数组中最大值和最小值的简单实例,需要的朋友可以参考下 -
c++实现找出数组最大值函数
2019-04-12 14:58:37c++实现的找出数组中最大值的程序,有输入数组函数,显示数组函数。和找出数组最大值的函数 -
求数组中的最大值和次大值
2021-04-12 00:12:37数组中的最大值和次大值 输入:A[1…n]=<a1, a2, …, an> 输出:max1,max2 【注:max1表示最大值,max2表示次大值】 2. 代码 for (int i = 1; i <= n; i++) { if (A[i] > max1) { max2 = max1; ...1. 问题
数组中的最大值和次大值
输入:A[1…n]=<a1, a2, …, an>
输出:max1,max2【注:max1表示最大值,max2表示次大值】
2. 代码
// max1 和 max2首先均被初始化为int范围内最小值, // 并且保证数组A[1..n]中的任何一个值比int范围内最小值都大。 for (int i = 1; i <= n; i++) { if (A[i] > max1) { max2 = max1; max1 = A[i]; } else if (A[i] > max2) { max2 = A[i]; } }
3. 算法正确性证明
算法证明所用技术:循环不变式
证明要点:
初始化: 首先证明在第3次循环之前,循环不变式成立。即,对于数组中前2 ( 3 − 1 = 2 ) (3 - 1 = 2) (3−1=2)个数,max1中存储最大值,max2存储次大值。
保持: 证明从第3次循环往后,每次迭代保持循环不变式。即,如果第k次执行之前,循环不变式(对于数组前 k − 1 k-1 k−1 个数,max1中存储最大值,max2存储次大值)成立,第k+1次执行之前,循环不变式(对于数组前 k + 1 − 1 k+1-1 k+1−1 个数,max1中存储最大值,max2存储次大值,)仍然成立。
终止: 最后研究在循环终止时发生了什么。导致循环终止的条件是i <= n
。我们有:对于数组中的前n个数,max1存储最大值,max2存储次大值。我们在这里仅证明保持部分。
第k次执行循环体之前: 对于数组前k-1个数,max1存储最大值,max2存储次大值。
第k次执行循环体: 分支1,若A[k]>max1,则执行max2 = max1; max1 = A[k]
。 由于max1存储的是前k-1个数的最大值,因此,前k个数的次大值就是max1,所以将max1的值转存至max2。而将A[k]存入max2,这样,max1存储的就是前k个数的最大值了。分支2,若max1>A[k]>max2,则执行max2 = A[k]
。由于max1比A[k]大,所以,前k个数的最大值依然是max1,所以max1的值不变。但A[k]比max2大,并且又因为max2存储的是前k-1个数的次大值,因此比当前max2大的数只有max1和A[k],又因为max1大于A[k],所以,A[k]是前k个数的次大值。故需要将A[k]的值转存至max2。
第k+1次执行循环体之前: 对于数组前k个数,max1存储最大值,max2存储次大值。 -
linux shell实现求一个多维数组中的最大和最小值
2020-09-15 15:46:18主要介绍了linux shell实现求一个多维数组中的最大和最小值,需要的朋友可以参考下 -
C语言程序设计-把20个随机数存入一个数组,然后输出该数组中的最大值;
2022-03-21 21:30:12C语言程序设计-把20个随机数存入一个数组,然后输出该数组中的最大值; -
JavaScript获取数组最小值和最大值的方法
2020-10-24 03:27:35主要介绍了JavaScript获取数组最小值和最大值的方法,涉及javascript中min与max方法的使用技巧,非常简单实用,需要的朋友可以参考下 -
JavaScript遍历查找数组中最大值与最小值的方法示例
2020-10-16 22:26:06主要介绍了JavaScript遍历查找数组中最大值与最小值的方法,结合实例形式分析了javascript基于数组遍历、判断实现最大值与最小值计算的相关操作技巧,需要的朋友可以参考下 -
java 输入一个数字组成的数组(输出该数组的最大值和最小值)
2020-08-31 08:30:25主要介绍了java 输入一个数字组成的数组,输出该数组的最大值和最小值,需要的朋友可以参考下 -
asp实现取得数组中的最大值的代码
2020-10-30 17:59:07asp实现取得数组中的最大值的代码 -
php获取数组中键值最大数组项的索引值 原创
2020-12-19 10:27:51从给定数组中获取值最大的数组项的键值。用途如:获取班级得分最高的学生的姓名。 二、解决方法: <?php /* * Created on 2015-3-17 * Created by www.jb51.net */ $arr=array('tom'=>9,'jack'=>3,'kim'=>5,... -
Python 求数组局部最大值的实例
2021-01-21 19:19:14求数组局部最大值 给定一个无重复元素的数组A[0…N-1],求找到一个该数组的局部最大值。规定:在数组边界外的值无穷小。即:A[0]>A[-1],A[N-1] >A[N]。 显然,遍历一遍可以找到全局最大值,而全局最大值显然是... -
javascript中数组中求最大值示例代码
2020-10-26 13:08:11数组如何求最大值,想必很多的朋友都不会吧,本文为大家介绍下javascript中数组是如何求最大值的,感兴趣的朋友不要错过 -
CUDA找数组的最大值.cu
2020-05-12 13:35:32通过共享内存优化,高效地查找一个序列中的最大值并将该最大值放到序列的第一个元素位置。同时,不同于传统的利用线程和数组序号对应的方式,本算法利用连续的线程进行计算,更有利于算法的并发性 -
c语言数组的最大值及下标(数组)_如何输出数组的下标
2020-08-24 13:37:19时间限制: 1000 毫秒 内存限制: 32768 K字节 总提次数: 1145 次版权文档请勿用做商业用途 成功提交次数: 875 次版权文档请勿用做商业用途 判题规则: 严格比较 问题描述 在一个n1)个元素的一维整型数组中找出最大值及... -
找出数组中的最大值和最大值的下标
2022-03-23 15:30:59假设数组中的第一个数和第一个下标是最大值,按照打擂主的形式进行一一比较,如果max<array[i]时,那么此时array[i]就是max,即max=array[i]。那么此时最大下标就是maxIdex=i 。这就是本题的思路。 例题:随机...解题思路:
假设数组中的第一个数和第一个下标是最大值,按照打擂主的形式进行一一比较,如果max<array[i]时,那么此时array[i]就是max,即max=array[i]。那么此时最大下标就是maxIdex=i 。这就是本题的思路。
最小值和最小值的下标同理。
例题:随机一个数组,找出数组中最大的数和最大数的位置,通过打擂台的方式
int len = (int) (Math.random() * 10 + 1); int[] array = new int[len]; for (int i = 0; i < len; i++) { array[i] = (int) (Math.random() * 10 + 1); } System.out.println("数组的内容是:"); for (int i = 0; i < len; i++) { System.out.print(array[i]+"\t"); } //找出最大值 int maxIdex=0;//假设数组中第一个数的下标是最大数的位置 int max = array[0];//假设数组中第一个数是最大值 for (int i = 1; i <len ; i++) { if (max < array[i]) { max = array[i];//你赢了,你是擂主 maxIdex=i; } } System.out.println("\n"+"数组中的最大值是:"+max); System.out.println("数组中最大数的下标是:"+maxIdex);
例2:随机一个数组,找出数组中最小的数和最小数的位置,通过打擂台的方式
int len=(int)(Math.random()*10+1); int[] array=new int[len]; for (int i = 0; i < len; i++) { array[i]=(int)(Math.random()*10+1); } System.out.println("数组中最小的数是:"); for (int i = 0; i < len; i++) { System.out.print(array[i]+"\t"); } int min=array[0]; int minIdex=0; for (int i = 1; i <len ; i++) { if (min>array[i]){ min=array[i]; minIdex=i; } } System.out.println("\n"+"数组中最小的数是:"+min); System.out.println("最小下标是:"+minIdex);
-
5940. 从数组中移除最大值和最小值
2021-11-28 18:33:325940. 从数组中移除最大值和最小值 给你一个下标从 0 开始的数组 nums ,数组由若干 互不相同 的整数组成。 nums 中有一个值最小的元素和一个值最大的元素。分别称为 最小值 和 最大值 。你的目标是从数组中移除这两...5940. 从数组中移除最大值和最小值
给你一个下标从 0 开始的数组 nums ,数组由若干 互不相同 的整数组成。
nums 中有一个值最小的元素和一个值最大的元素。分别称为 最小值 和 最大值 。你的目标是从数组中移除这两个元素。
一次 删除 操作定义为从数组的 前面 移除一个元素或从数组的 后面 移除一个元素。
返回将数组中最小值和最大值 都 移除需要的最小删除次数。
示例 1: 输入:nums = [2,10,7,5,4,1,8,6] 输出:5 解释: 数组中的最小元素是 nums[5] ,值为 1 。 数组中的最大元素是 nums[1] ,值为 10 。 将最大值和最小值都移除需要从数组前面移除 2 个元素,从数组后面移除 3 个元素。 结果是 2 + 3 = 5 ,这是所有可能情况中的最小删除次数。 示例 2: 输入:nums = [0,-4,19,1,8,-2,-3,5] 输出:3 解释: 数组中的最小元素是 nums[1] ,值为 -4 。 数组中的最大元素是 nums[2] ,值为 19 。 将最大值和最小值都移除需要从数组前面移除 3 个元素。 结果是 3 ,这是所有可能情况中的最小删除次数。 示例 3: 输入:nums = [101] 输出:1 解释: 数组中只有这一个元素,那么它既是数组中的最小值又是数组中的最大值。 移除它只需要 1 次删除操作。
提示:
- 1 <= nums.length <= 1 0 5 10^5 105
- − 1 0 5 -10^5 −105 <= nums[i] <= 1 0 5 10^5 105
- nums 中的整数 互不相同
解题思路
- 统计最大值和最小值所在的下标,因为在这题中,哪个是最大值,哪个是最小值对题目并不影响,因此我们只需要知道左边极值的下标和右边极值的下标即可。
- 共有三种删除方法
- 从数组的 前面 移除元素,直到把右边的极值移除
- 从数组的 后面 移除元素,直到把左边的极值移除
- 从数组的两边一齐移除元素,直到把左边和右边的极值移除
代码
class Solution { public: int minimumDeletions(vector<int>& nums) { int max_i(0),min_i(0),n=nums.size(); for (int i = 1; i < nums.size(); ++i) { if (nums[i]>nums[max_i]) max_i=i; if (nums[i]<nums[min_i]) min_i=i; } int l=min(max_i,min_i),r=max(max_i,min_i); return min(l+1+n-r,min(r+1,n-l)); } };
-
初识C++(二) 求数字数组中的最大值和次大值,最小值和次小值以及其下标
2021-09-30 22:53:20求一个包含10个数字的数组中的最大值和次大值,最小值和次小值以及下标 因为我们老师要我们手写, 所以我就以写的字最少为出发点, 这个代码主要的处理代码只有5行,手写起来就非常nice ???? 如果对你有帮助,请给我点个... -
C语言求出数组中的最大值和次大值!
2018-05-11 16:52:51#include<stdio.h> //改数组大小只需要修改 N后面的数字 #define N 5 int main(void) ... //定义最大值并赋值 int mid= 0; //定义次大值并赋值 for(int i = 0;i<N;i... -
C#获取数组中最大最小值的方法
2020-09-03 14:31:10主要介绍了C#获取数组中最大最小值的方法,本文直接给出实例代码,需要的朋友可以参考下 -
cpp代码-(一维数组)声明10个数组元素并输入元素,找出最大值及其下标
2021-07-14 22:30:56cpp代码-(一维数组)声明10个数组元素并输入元素,找出最大值及其下标 -
数组中查找最大值和最小值 (两种方法)
2020-12-06 14:00:13//获取数组中元素的最大值,方法一public static int getMax(int[] arr){int max = arr[0];for(int x=1; xif(arr[x]>max){max = arr[x];}}return max;}//获取数组元素中的最大值,方法二public static int getMax... -
php求正负数数组中连续元素最大值示例
2021-01-21 16:05:11php实现正负数数组最大子序列,要求给出数组,该数组由正负数字组成,找出该数组中连续元素组成的子数组的最大值。这其实得算是个背包变种吧。 复制代码 代码如下:<?php$list = array(1,-3,-5,-7,8,9,-11,5); $... -
c语言实现输出数组最大值与次大值
2021-04-08 18:42:51提示:根据算法与数据结构来寻找最大值与次大值并输出,在主函数中调用该方法时只需要传入数组和数组元素个数即可。 c语言寻找最大值和次大值 示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务... -
找出数组中的最大值和次大值
2015-07-18 14:12:15如何找出一个数组中的最大值和次大值,并且找出它们的位置。 思路: 假设只有四个数字,分成两组,前两个比较一次得出最大和次大,后两个比较一次得出最大和次大,则四个数字的最大值就是两个较大值中的最大值。而次... -
js找出数组中的最大值
2019-08-28 10:03:57首先对数组进行排序(从大到小),第一项为最大值 arr.sort((num1, num2) => { return num1 - num2 }) arr[0] 5.数组reduce arr.reduce((num1, num2) => { return num1 > num2 ? num1 : num2} ) ... -
c代码-运用指针计算10个元素数组中最大值最小值并返回在数组中的位置
2021-07-16 12:27:14c代码-运用指针计算10个元素数组中最大值最小值并返回在数组中的位置 -
利用C语言 找出数组中的最大值和最小值
2021-10-30 14:34:54#include<stdio.h> #define N 5 int main() { int i,a[N],max,min; printf("输入%d个数:",N); for(i=0;i<N;i++) scanf("%d",&a[i]); max=min=a[0]; for(i=0;i<N;i++) ... i... -
N维数组的最大值或最小值:这些函数返回数组中最大值或最小值的下标-matlab开发
2021-05-31 02:18:11%maxNsarvas ND 数组最大值,带下标输出% % X = MAXN(A) 返回作为第一个元素跟随的最大值% 由 A 的下标表示。事先不需要知道 A 的大小% 使用。 % % X = [最大值(A) sub1 sub2 sub3 . . . 子N]; % % 如果最大值出现...