42.leetcode题目:169. Majority Element(还有一种方法待做)
来源:互联网 发布:淘宝店铺怎么发布产品 编辑:程序博客网 时间:2024/05/16 12:38
题目:
Given an array of size n, find the majority element. The majority element is the element that appears more than ⌊ n/2 ⌋
times.
You may assume that the array is non-empty and the majority element always exist in the array.
分析:这题在剑指offer上看到过,剑指offer上还没有说明这个数字一定存在,所以在寻找结束后,还要判断这个数字是否超过了总长度的一半。
根据快速排序来做,出现次数超过一半的数字必定位于正中间。
class Solution {public: int majorityElement(vector<int>& nums) { int n=nums.size(); int start=0,end=n-1,middle=(n)/2; int index=Partition(nums,n,start,end); while(index!=middle){ if(index<middle){ start=index+1; index=Partition(nums,n,start,end); } else{ end=index-1; index=Partition(nums,n,start,end); } } return nums[index]; } int Partition(vector<int>&data,int length,int start,int end){ //if(data.empty()||length<=0||start<0||end>=length) //return -1; //int middle=(start+end)/2; int index=start-1; //swap(data[middle],data[end]); for(int i=start;i<end;++i){ if(data[i]<data[end]){ ++index; if(index!=i) swap(data[index],data[i]); } } ++index; swap(data[end],data[index]); return index; }};
40ms。
看到讨论里别人做的,有很巧妙的,:每找到两个不一样的数字则成对删除,最后剩下的数字就是要找的数字。
0 0
- 42.leetcode题目:169. Majority Element(还有一种方法待做)
- leetcode -- Majority Element -- 简单,但是还有很多其他方法
- leetcode [Majority Element]//待整理多种解法
- [LeetCode]169.Majority Element
- LeetCode 169.Majority Element
- 【LeetCode】169.Majority Element
- LeetCode 169. Majority Element
- LeetCode 169. Majority Element
- [leetcode] 169.Majority Element
- Leetcode 169. Majority Element
- 【LeetCode】169. Majority Element
- [LeetCode]169. Majority Element
- 169. Majority Element LeetCode
- LeetCode 169. Majority Element
- LeetCode 169. Majority Element
- Leetcode 169. Majority Element
- [LeetCode]169. Majority Element
- 【LeetCode】169. Majority Element
- Kali Linux 新手折腾笔记
- AjaxUploader使用
- wordpress 比较全的标签调用整理
- OC学习日记Day4:创建对象,消息发送,类方法和实例方法
- JSP页面实现servlet过滤器与servlet监听器(JSP中级技术)
- 42.leetcode题目:169. Majority Element(还有一种方法待做)
- Android之UI--打造万能自定义Dialog
- 非监督版bp网络
- LeetCode 91. Decode Ways
- java 基础加强(myeclipse,debug,junit,JDK5新特性,反射)
- leetCode(62)-Reverse Integer
- ORACLE 闪回恢复区(Flashback recovery area)与undo tablespace
- 快速排序(分治法)
- spring,图片上传