Majority Element
来源:互联网 发布:为知笔记 设置分享密码 编辑:程序博客网 时间:2024/06/14 05:15
题目地址:https://leetcode.com/problems/majority-element/
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.
题目的意思是,找到数组中出现次数大于数组长度一般的数字。
这个就用统计法就挺好,用key,value计数当前的状态。从第一个元素开始遍历,如果当前元素与key中的元素相同,那么value就加1,如果不相同,那么value就减1,如果value已经减没了,那么就该让位了,key设为当前元素值,并设value为1。
我们可以理解为一个Map的数据结构,只不过我们只有一个Entry罢了。
public class MajorityElement { public int majorityElement(int[] nums) { int key = nums[0]; int value = 1; for (int i = 1; i < nums.length; i++) { if (nums[i] == key) { value++; } else { if (value == 1) key = nums[i]; else value--; } } return key; }}
时间复杂度为:O(n)
0 0
- majority element
- Majority Element
- Majority Element
- Majority Element
- Majority Element
- Majority Element
- Majority Element
- Majority Element
- Majority Element
- Majority Element
- Majority Element
- Majority Element
- Majority Element
- Majority Element
- Majority Element
- majority element
- Majority Element
- Majority Element
- Android关于WiFi以及WiFi热点操作
- Ubuntu16.04 Android开发环境搭建JDK SDK NDK
- jQuery-jquery+ajax+jsonp+java跨域请求方案
- opencv approxPolyDP 简化边界
- HDU 1702 ACboy needs your help again! (栈与队列)
- Majority Element
- Segment Tree Modify
- 如何做好计算机视觉的研究
- c#反射中Assembly类动态加载程序集
- 从Ubuntu 14.04 LTS版升级到Ubuntu 16.04 LTS
- 任何javascript框架(如jQuery)的代码是藏不住的,都是完全暴露源码的,因为JavaScript不像java一样,java的一些代码被封装进jar了,JavaScript没有封装
- 为什么定积分可以用原函数来计算?
- ZCMU—1487
- 学习python的第三十一天-模块,dir()函数