Second Max of Array

Find the second max number in a given array.

Example

Given [1, 3, 2, 4], return 3.

Given [1, 2], return 1.

Notice : Attention corner case. Communicate with Interviewer.

public class Solution {
    /**
     * @param nums: An integer array.
     * @return: The second max number in the array.
     */
    public int secondMax(int[] nums) {
       int max = Math.max(nums[0],nums[1]);
       int secondMax = Math.min(nums[0],nums[1]);
       for (int i = 2; i < nums.length; i++) {
               if (max <= nums[i]) {
                   secondMax = max;
                   max = Math.max(nums[i],max);
               }
       }
       return secondMax;
    }
}
时间: 2024-10-05 17:39:18

Second Max of Array的相关文章

2.10 用最少次数寻找数组中的最大值和最小值[find min max of array]

[本文链接] http://www.cnblogs.com/hellogiser/p/find-min-max-of-array.html [题目] 对于一个由N个整数组成的数组,需要比较多少次才能把最大和最小的数找出来呢? [分析] 1. 遍历两次数组,分别找出最大值和最小值,需要进行 2N 次比较. 2. 将数组中的元素分组,按顺序将数组中相邻的两个数分在同一组,用Max和Min来存储最大值和最小值.同一组比较完之后,较小的数与当前的最小值比较,如该数小于当前最小值,更新Min:较大的数与当

js数组最大值max和最小值min

var a=[1,2,3,5]; alert(Math.max.apply(null, a));//最大值 alert(Math.min.apply(null, a));//最小值 多维数组 var a=[1,2,3,[5,6],[1,4,8]]; var ta=a.join(",").split(",");//转化为一维数组 alert(Math.max.apply(null,ta));//最大值 alert(Math.min.apply(null,ta));//

linux下Bash编程之数组Array详解

1.Array数组与变量概念与区别 变量是一段内存空间,并且变量与变量之间是多数是不连续的内存空间 Array数组是由多个变量组成,数组中的变量称为元素,数组中的元素是连续的内存空间 2.声明数组 declare -a 数组名 例如:声明一个数组STU并初始化值 写法1: declare -a STU STU[0]=Willow STU[1}=Tom STU[2]=Redhat 写法2: STU=(Willow Tom Redhat) #元素之间用空格隔开,元素从0开始依次赋值,不能跳跃 写法3

软件工程课程作业(四)--返回一个整数数组中最大子数组的和

伙伴链接:http://www.cnblogs.com/haoying1994/ 一.设计思想 本实验要求输入一个正负数混合的整型数组,长度不限,在此数组的所有子数组中找到和最大的数组,并求出相应数组的和,且时间复杂度为O(n).我们在课堂上共同讨论了多种解决方案,这些将在下面可能的解决方案中展示,在听了同学的思路和老师的讲解之后, 我们最终选取了老师课堂上描述的比较简便的思路.如下: 在输入数组的环节,采用for无限循环加if判断截止,直到触发回车键为止,将数组记录到Array中,数组长度记录

underscore学习总结,献给晦涩的函数式编程之美

underscore.js 越看越美,如果在项目中不断尝试underscore的方法,将会事半功倍 underscore 体现出 functionial javascript的思想,采用函数式编程的思路来解决日常生活中的一些 util的小问题 javascript 属于弱语言,对象类型用得最多的就是 array和object,underscore是基于js 封装一些对象和数组方法的库,使用起来非常便捷 这里推荐一本函数式编程的书,Functionial Javascript ,这本书对于函数式编

排序之计数排序

计数排序并非一种基于比较进行的排序,它是计算一个序列中的值在正常排好序中的序列所处的位置,怎么求解一个数的位置呢?就是利用下脚标进行求解,新建一个数组resu[],数组的长度要比序列中的最大值大1,数组中的值全部初始化为0,然后遍历原序列,将原序列的值i作为新建数组resu[]的下脚表,对resu[i]++操作,这样就得出值 i 出现的次数:然后再利用resu[i]=resu[i]+resu[i-1]求解出i在原序列中的位置. 计数排序需要两个额外的数组作辅助,提供临时存储的resu数组,存放最

数据结构——八大排序算法

驱动程序: public class Main { public static void main(String[] args) {        int[] array={2,0,3,4,1,9,6,8,7,5};        print(Sort.bubbleSort(array, true));//冒泡        print(Sort.InsertionSort(array, true));//插入        print(Sort.mergeSort(array,true, "r

5th 13.10.21数组求和 求最大数

01求1+2+3+4+5+...+10 1先创建变量用来保存相加和 2便利1到10 3让保存的变量与for循环变量相加, 在赋值给保存和的变量 int sum = 0; for(i=0;i<=10;i++){ sum += i; } sop(sum); 02:求数组的和 1先创建变量用来保存相加和 2便利数组 3让保存的变量与for循环变量相加, 在赋值给保存和的变量 int[] array = new int[]{45,4,45,4,5,4,} int sum = 0; for(int=0;i

PHP 面试题

请写出以下html标签的含义: input form script style table b img ============================================================ <input/>标签 用于搜集用户信息. 根据不同的type属性值,输入字段拥有很多种形式. 输入字段可以是文本字段.复选框.掩码后的文本控件.单选按钮.按钮等等. =====================================================