查找数组中的第二大数

这篇博客介绍了在Java中查找数组中第二大数的步骤:首先找出数组的最大值,然后找到最小值,如果最大值和最小值不相等,则存在第二大的数;若相等,则返回-1表示没有第二大的数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

步骤:
1、获取数组的最大值
2、获取数组的最小值
3、判断最大值和最小值是否相等,如果相等返回-1,没有第二在的数

//查第二大数的下标
	public static int getSecond(int[] nums) {
		int indexMin = getMin(nums);//最小值的下标
		int indexMax = getMax(nums);//获取到了最大数的下标
		//判断是否最大值等于最小值--如果返回值是-1,代表没有第二大数
		if(indexMin==indexMax) {
			return -1;}
		//默认让最小值当第二大数,取出最小值的下标
		int index = indexMin;
		//取出最小值的值,假设它是第二大数
		int smax = nums[indexMin];
		//获取最大值	
		int max = nums[indexMax];
		//2,8,8,8,8,8,8,8,8,8,8
		for(int i=0;i<nums.length;i++) {
		//排除掉最大值,在不是最大值里找
			if(nums[i]!=max) {
//剩下的数打擂台,如果数组中还有比第二大数大的,就覆盖我们假设的第二大值
				if(nums[i]>smax) {					
					smax=nums[i];
					index = i;
				}
			}
		}
		return index;
	}
	// 这个方法是获取最大值的方法 返回下标 0-length-1
	public static int getMax(int[] nums) {
		int index = 0;// 默认让第一个数最大
		int max = nums[0];
		// 打擂台
		for (int i = 1; i < nums.length; i++) {
			if (nums[i] > max) {
				max = nums[i];// 记录当前最大值
				index = i;// 记录当前最大值的下标
			}
		}
		return index;
	}

	// 这个方法是获取最小值的方法 返回下标 0-length-1
	public static int getMin(int[] nums) {
		int index = 0;// 默认让第一个数最小
		int min = nums[0];
		// 打擂台
		for (int i = 1; i < nums.length; i++) {
			if (nums[i] < min) {
				min = nums[i];// 记录当前最小值
				index = i;// 记录当前最小值的下标
			}
		}
		return index;
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值