public class GetMax {
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;
}
}
分享到:
相关推荐
这是一道经典的二维数组处理问题,可以应用Kadane's algorithm进行解决,寻找连续子数组的最大和。对于01矩阵,目标是找到连续的1的最大数量。 6. **判断点分十进制IP合法性**: IP地址是四个0-255之间的数字,用...
#### 二、笔试面试题资源介绍 1. **LeetCode** - **简介**:知名的在线编程学习平台,提供大量编程挑战题目。 - **特点**:涵盖各种难度级别的题目,适合准备算法面试。 - **适用对象**:初级至高级程序员。 - ...
### 2017年阿里Java基础面试题文档解析 #### 一、自我介绍与问题解决能力 在自我介绍部分,面试者应该清晰地表达自己的背景、经历以及为什么选择当前的职业道路。此外,通过讲述一个具体的问题解决案例,能够展现...
- **最大堆**:用于实现快速获取最大值,例如在海量数据中找出最大的1000个数。 - **链表**:包括环形链表的检测和反转操作,以及链表合并。 - **双头栈**:可以用数组实现,方便在两端进行入栈和出栈操作。 3. ...
### Java后端面试题知识点解析 #### 1. ArrayList初始化及扩容机制 - **知识点**: - `ArrayList`的内部实现与扩容机制。 - **解释**: - `ArrayList`是一个动态数组,初始容量可以通过构造函数指定。当构造一个`...
"JAVA基础面试题" List、Map、Set的存储特点 List以特定次序来持有元素,可以有重复元素。Set无法拥有重复元素,内部排序。Map保存key-value值,value可以多值。 final、finally、finalize的区别 final是修饰符...
.NET面试题集锦涵盖了多个核心概念,包括字符串操作、操作系统内存管理、C#基础、类与结构的区别、委托、编码与字节长度、SQL查询、线程安全以及异常处理。下面将对这些知识点进行详细解释。 1. 字符串两端比较:在...
【Java关键字】 在Java中,关键字是被Java语言预定义的,有着...以上是对Java基础面试题中涉及的知识点的详细解释,涵盖了关键字、垃圾收集、数组、数据类型、循环、位运算符、关键字识别、switch语句等多个核心概念。
剑指Offer是一本知名的面试题集,它收集了大量中国IT公司面试中的经典问题,这些问题通常涵盖数据结构和算法、设计模式、系统设计等多个方面。通过解答这些题目,不仅可以提高编程能力,还能了解面试官关注的点。 ...
以下是针对提供的面试题的一些详细解释: 1. **final关键字**:final关键字在Java中有三种主要用途。首先,它可以用来修饰类,使得该类不能被继承,如`final class MyClass {}`。其次,final可以修饰方法,这表示该...
#### 微软十五道面试题详解 **1. 整数数组两两之差绝对值最小值** - **题目描述**:给定一个整数数组,请求出两两之差绝对值最小的值。 - **解决方案**:可以先对数组进行排序,然后遍历相邻元素,计算它们之间的...
### 微软面试题及答案解析 #### 题目一:计算整数二进制表示中的1的数量 **题目描述:** 编写一个函数 `int func(int x)`,该函数接收一个整数作为输入,并返回该整数在二进制表示中1的个数。 **示例代码:** ```...
- 快速排序是一种分而治之的排序算法,通过选取一个“基准”将数组分为两部分,一部分比基准小,另一部分比基准大,然后递归地对这两部分继续进行排序。 4. **Overload和Override的区别。Overloaded的方法是否可以...
这些公司都是中国互联网行业的巨头,他们的面试题往往涵盖了广泛的技术领域,重点考察候选人的实际编程能力、算法理解、系统设计和工程实践经验。以下是对标签“java”相关部分的详细解释: 1. **数据结构与算法**...
【阿里各岗位技术面试题含答案】 1. **SynchronousQueueQuiz**: SynchronousQueue 是 Java 中的一个特殊类型的 BlockingQueue,它不存储元素,而是充当生产者和消费者之间的同步点。当一个线程调用 offer 方法...
同时,文档作者也分享了个人的学习心得,即通过不断搜集和整理面试题,以及提供自己的解答,不仅能够帮助他人,也能加深自己的理解,达到双赢的效果。 综上所述,微软数据结构+算法面试100题不仅是准备IT行业面试的...
- 快速排序:快速排序是一种高效的排序算法,它采用分治法的思想,通过一个基准值将数组分为两个子数组,左边的子数组都比基准值小,右边的子数组都比基准值大,然后递归地排序两个子数组。快速排序的平均时间复杂度...