取得一个数组的最大值和次最大值:
public static void main(String[] args) {
int[] nums = { 2, 3, 4, 1, 2 };
System.out.println(getMax(nums));
System.out.println(getPerMax(nums));
}
public static int getMax(int[] nums) {
int max = Integer.MIN_VALUE;
if (nums == null || nums.length == 0) {
throw new NullPointerException(
"the array is null or length less than 1");
}
max = nums[0];
for (int i = 1; i < nums.length; i++) {
if (nums[i] > max)
max = nums[i];
}
return max;
}
public static int getPerMax(int[] nums) {
int max = Integer.MIN_VALUE;
int perMax = Integer.MIN_VALUE;
if (nums == null || nums.length < 2) {
throw new NullPointerException(
"the array is null or length less than 2");
}
max = nums[0];
for (int i = 1; i < nums.length; i++) {
if (nums[i] > max)
max = nums[i];
}
for (int i = 0; i < nums.length; i++) {
if (nums[i] > perMax && nums[i] < max) {
perMax = nums[i];
}
}
if (max == perMax)
throw new RuntimeException("no secord number.");
return perMax;
}
分享到:
相关推荐
java基础面试题连续子数组的最大和本资源系百度网盘分享地址
第153题“寻找排序数组中的最小值”是一道典型的算法题,它涉及到数组操作和二分查找的思想。在此,我们将深入探讨这个题目,以及相关的Java编程知识点。 题目描述: 给定一个整数数组`nums`,数组中的元素是按非...
java基础面试题构建乘积数组本资源系百度网盘分享地址
此段代码通过递归的方式计算一个数组的最大值和最小值。首先判断当前区间是否包含一个或两个元素,如果是,则直接确定最大值和最小值;如果不是,则将数组分成两半,分别递归地计算左右两边的最大值和最小值,最后...
java基础面试题二维数组中查找本资源系百度网盘分享地址
数组是一种连续存储的数据结构,即数组中的元素在内存中是连续存储的。这使得数组在查找数据时效率非常高,因为内存地址是连续的。然而,数组也存在一些缺点: * 需要在存储之前申请一块连续的内存空间,并且在编译...
寻找数组中的最大值和最小值,需遍历数组并维护最大值和最小值变量。 对于排序,Java提供`Arrays.sort()`方法,能对数组进行升序排序。数组的反转可以通过循环或`Collections.reverse()`方法实现。判断两个数组是否...
数组 - 需要参加面试的人
第154题“寻找旋转排序数组中的最小值II”是这样一个挑战,它涉及到数组处理和二分查找的技巧。在此,我们将深入探讨这个题目,以及如何用Java解决它。 题目描述: 假设一个旋转排序数组的连续子数组在某个未知点...
在本题解中,我们将深入探讨Python编程语言在解决LeetCode第153题——"寻找旋转排序数组中的最小值"(Find Minimum in Rotated Sorted Array)时的应用。LeetCode是一系列面向程序员的在线编程挑战平台,对于求职...
在这个“一维数组题目8道题带答案”资源中,我们可以期待找到一系列与一维数组相关的练习题,旨在帮助学习者理解和熟练掌握在Unity C#环境中操作数组的技巧。 1. **数组的基本概念**: - 一维数组是线性数据结构,...
题目描述: 把一个数组最开始的若干个元素搬到数组的末尾,我们称之...例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。 解题思路参考博客
在本压缩包中,我们关注的是一个Python编程与算法相关的面试题目——LeetCode的第154题,名为“寻找旋转排序数组中的最小值II”。这道题目是数据结构和算法领域的一个经典问题,通常出现在程序员求职面试中,用于...
Java面试编程题(数组和链表相关) 本资源主要讲解了Java面试编程题中的数组和链表相关知识点,涵盖了Java编程语言中数组和链表的基本概念、算法和数据结构等方面的知识。 一、数组相关知识点 1. 、二维数组的...
在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2...
我们可以使用一个辅助数组(一维数组)来存储每一列的最小值,然后遍历不规则二维数组,每次更新对应列的最小值。这种方法的关键在于,对于不规则二维数组,我们需要为每一列维护一个最小值的状态,而不是简单地通过...
在处理数组时,有时我们需要找出数组中的最大或最小值。本示例介绍了一种简单且高效的算法来寻找整数数组中的最大值。 首先,我们创建了一个名为`FindMaxInArray`的类,并在其中定义了一个`main`方法,这是Java程序...
// 当左边界和右边界相等时,数组已经排序完成,最小值即为第一个元素 while ($left $right) { $mid = floor(($left + $right) / 2); // 如果中间元素大于右侧元素,说明最小值在左侧 if ($nums[$mid] > $nums...
java基础面试题旋转数组的最小数字本资源系百度网盘分享地址