`
zeyuphoenix
  • 浏览: 57947 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

收集面试题(二十)(取数组最大和次最大值)

阅读更多
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基础面试题文档 Java知识分享

    ### 2017年阿里Java基础面试题文档解析 #### 一、自我介绍与问题解决能力 在自我介绍部分,面试者应该清晰地表达自己的背景、经历以及为什么选择当前的职业道路。此外,通过讲述一个具体的问题解决案例,能够展现...

    Android面试题总结

    - **最大堆**:用于实现快速获取最大值,例如在海量数据中找出最大的1000个数。 - **链表**:包括环形链表的检测和反转操作,以及链表合并。 - **双头栈**:可以用数组实现,方便在两端进行入栈和出栈操作。 3. ...

    Java 后端面试题附答案

    ### Java后端面试题知识点解析 #### 1. ArrayList初始化及扩容机制 - **知识点**: - `ArrayList`的内部实现与扩容机制。 - **解释**: - `ArrayList`是一个动态数组,初始容量可以通过构造函数指定。当构造一个`...

    JAVA基础面试题

    "JAVA基础面试题" List、Map、Set的存储特点 List以特定次序来持有元素,可以有重复元素。Set无法拥有重复元素,内部排序。Map保存key-value值,value可以多值。 final、finally、finalize的区别 final是修饰符...

    今年来收集的.net面试题集锦

    .NET面试题集锦涵盖了多个核心概念,包括字符串操作、操作系统内存管理、C#基础、类与结构的区别、委托、编码与字节长度、SQL查询、线程安全以及异常处理。下面将对这些知识点进行详细解释。 1. 字符串两端比较:在...

    java基础面试题答案.pdf

    【Java关键字】 在Java中,关键字是被Java语言预定义的,有着...以上是对Java基础面试题中涉及的知识点的详细解释,涵盖了关键字、垃圾收集、数组、数据类型、循环、位运算符、关键字识别、switch语句等多个核心概念。

    数据结构和算法解析LeetCode解题剑指Offer面试题集.zip

    剑指Offer是一本知名的面试题集,它收集了大量中国IT公司面试中的经典问题,这些问题通常涵盖数据结构和算法、设计模式、系统设计等多个方面。通过解答这些题目,不仅可以提高编程能力,还能了解面试官关注的点。 ...

    JAVA面试题信息一.docx

    以下是针对提供的面试题的一些详细解释: 1. **final关键字**:final关键字在Java中有三种主要用途。首先,它可以用来修饰类,使得该类不能被继承,如`final class MyClass {}`。其次,final可以修饰方法,这表示该...

    微软、谷歌、百度等公司经典面试100题[第101-170题].pdf

    #### 微软十五道面试题详解 **1. 整数数组两两之差绝对值最小值** - **题目描述**:给定一个整数数组,请求出两两之差绝对值最小的值。 - **解决方案**:可以先对数组进行排序,然后遍历相邻元素,计算它们之间的...

    微软面试题及答案

    ### 微软面试题及答案解析 #### 题目一:计算整数二进制表示中的1的数量 **题目描述:** 编写一个函数 `int func(int x)`,该函数接收一个整数作为输入,并返回该整数在二进制表示中1的个数。 **示例代码:** ```...

    java面试题.pdf

    - 快速排序是一种分而治之的排序算法,通过选取一个“基准”将数组分为两部分,一部分比基准小,另一部分比基准大,然后递归地对这两部分继续进行排序。 4. **Overload和Override的区别。Overloaded的方法是否可以...

    阿里、京东、美团、字节真实面试题,不多,但真实

    这些公司都是中国互联网行业的巨头,他们的面试题往往涵盖了广泛的技术领域,重点考察候选人的实际编程能力、算法理解、系统设计和工程实践经验。以下是对标签“java”相关部分的详细解释: 1. **数据结构与算法**...

    阿里各岗位技术面试题含答案最新.pdf

    【阿里各岗位技术面试题含答案】 1. **SynchronousQueueQuiz**: SynchronousQueue 是 Java 中的一个特殊类型的 BlockingQueue,它不存储元素,而是充当生产者和消费者之间的同步点。当一个线程调用 offer 方法...

    微软等公司数据结构+算法面试100题

    同时,文档作者也分享了个人的学习心得,即通过不断搜集和整理面试题,以及提供自己的解答,不仅能够帮助他人,也能加深自己的理解,达到双赢的效果。 综上所述,微软数据结构+算法面试100题不仅是准备IT行业面试的...

    面试题MVC篇.pdf

    - 快速排序:快速排序是一种高效的排序算法,它采用分治法的思想,通过一个基准值将数组分为两个子数组,左边的子数组都比基准值小,右边的子数组都比基准值大,然后递归地排序两个子数组。快速排序的平均时间复杂度...

Global site tag (gtag.js) - Google Analytics