如何在O(n)时间内找到一个整数数组中的第二大元素。
来源:互联网 发布:南方公园知乎 编辑:程序博客网 时间:2024/05/29 15:48
问题描述:如何在O(n)时间内找到一个整数数组中的第二大元素。
思路:遍历时同时保存第一和第二就成了。
JAVA实现如下:
public class FindSecMax {/** @petopig */public static void main(String[] args) {int [] a = {3,4,5,6,7,8,8,9,9,2,-1};System.out.println(FindSecMax.getSecond(a));}public static int getSecond(int []a){int max = a[0];int secMax = a[1];if(a[0]<a[1]){max = a[1];secMax = a[0];}for(int i=2;i<a.length-1;++i){if(a[i] > max){secMax = max;max = a[i];}else if(a[i] <= max && a[i] > secMax){secMax = a[i];}}return secMax;}}
- 如何在O(n)时间内找到一个整数数组中的第二大元素。
- 如何在O(n)时间内找到一个整数数组中的第二大元素
- 在O(n)时间内找到数组中的第i小的元素
- O(n)时间内查找到无序数组当中的第二大元素
- 一个含n个元素的整数数组至少存在一个重复数, 请编程实现,在O(n)时间内找出其中任意一个重复数。
- 156 含n个元素的整数数组至少存在一个重复数,在 O(n)时间内找出其中任意一个重复数
- 取值为[1,n-1] 含n 个元素的整数数组至少存在一个重复数,O(n) 时间内找出其中任意一个重复数
- 在O(n)时间内找到数组中任意第K小的数
- 怎样从一个数组中找到第二大的元素
- 一个具有N个元素的数组,找出数组中的第二大的数
- 如何判断一个整数数组中是否有重复元素?要求时间复杂度O(n),空间复杂度O(1)
- 如何判断一个整数数组中是否有重复元素?要求时间复杂度O(n),空间复杂度O(1)
- 如何判断一个整数数组中是否有重复元素?要求时间复杂度O(n),空间复杂度O(1)
- 面试题精选(79):取值为【1,n-1】含n个元素的整数数组至少存在一个重复数,O(n)时间内找出其中任意一个重复数
- 一道排序笔试题,在o(n)时间内对一个数组进行排序
- 在O(n)时间内找出最小的k个元素
- 编写程序,在O(n)时间内从数组x[0..n-1]中找出第k个最小的元素?
- 在O(logn)时间内找到数组中离每个数最近而又比它大的数的下标
- 多线程之3-------多个线程访问共享数据的方式
- Silverlight中的Command,自定义简单Command
- C++ inline函数
- 矩阵乘法实现
- platform设备驱动之按键扫描(cdev设备)
- 如何在O(n)时间内找到一个整数数组中的第二大元素。
- Ubuntu 10.04 中文输入法安装
- ASP.NET缓存依赖--SQL Server 2005与SQL Server 2008缓存依赖
- ASP.NET自定义输出缓存提供程序
- POJ1001
- VC断点调试
- jsonp跨域请求的小例子
- Linux版Sublime Text中文不能正常显示的解决方案(修改字体)
- SQL Server 2005(2008)用户 'IIS APPPOOL\DefaultAppPool' 登录失败