[LeetCode]414. Third Maximum Number第三大的数
2016-12-06 15:12
204 查看
知识点:最小整数,数组初始化vector,vector遍历Given a non-empty array of integers, return the third maximum number in this array. If it does not exist, return the maximum number. The time complexity must be in O(n).给一个非空的整形数组,返回这个数组中第三大的数。如果它不存在,则返回最大的数。时间复杂度必须为o(n)Example 1:
Input: [3, 2, 1] Output: 1 Explanation: The third maximum is 1.Example 2:
Input: [1, 2] Output: 2 Explanation: The third maximum does not exist, so the maximum (2) is returned instead.Example 3:
Input: [2, 2, 3, 1] Output: 1 Explanation: Note that the third maximum here means the third maximum distinct number. Both numbers with value 2 are both considered as second maximum.Subscribe to see which companies asked this question
void InsertOneNum2List(long sortList[3], int num) { //sortList 0-max,1-second,2-third if(num == sortList[0] || num == sortList[1] ||num == sortList[2]) return; if(num > sortList[0]) { sortList[2] = sortList[1]; sortList[1] = sortList[0]; sortList[0] = num; } else if(num > sortList[1]) { sortList[2] = sortList[1]; sortList[1] = num; } else if(num > sortList[2]) { sortList[2] = num; } } class Solution { public: int thirdMax(vector<int>& nums) { //因为会用INT_MIN作为测试数,所以这里需要用LONG_MIN long sortList[3] = {LONG_MIN,LONG_MIN,LONG_MIN};
//遍历插入 vector<int>::iterator iter; for(iter = nums.begin();iter != nums.end();iter++) { InsertOneNum2List(sortList,*iter); } if(sortList[2] == LONG_MIN || sortList[2] == sortList[1]) return sortList[0]; else return sortList[2]; } };
void main(){int a[] = {1,2,-2147483648};vector<int> nums(a,a+3);Solution *s = new Solution();int result = s->thirdMax(nums);cout<<result;}
相关文章推荐
- ruby 数组使用教程
- Ruby中的数组和散列表的使用详解
- C#实现AddRange为数组添加多个元素的方法
- C#比较二个数组并找出相同或不同元素的方法
- 快速解决C# android base-64 字符数组的无效长度问题
- C#中数组、ArrayList和List三者的区别详解
- C# 拷贝数组的几种方法(总结)
- C#动态调整数组大小的方法
- 详解Lua中的数组概念知识
- Perl中的列表和数组学习笔记
- jQuery 判断是否包含在数组中Array[]的方法
- 浅谈C#各种数组直接的数据复制/转换
- 探索PowerShell (八) 数组、哈希表(附:复制粘贴技巧)
- C#中数组初始化与数组元素复制的方法
- C#交错数组用法实例
- Linux Shell 数组建立及使用技巧
- PowerShell数组的一些操作技巧
- C#通过yield实现数组全排列的方法
- C#不重复输出一个数组中所有元素的方法
- C#实现将数组内元素打乱顺序的方法