leetcode - Majority Element
来源:互联网 发布:windows更新出现问题 编辑:程序博客网 时间:2024/06/08 13:29
Problem:
(1)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.
(2)Majority Element II
Given an integer array of size n, find all elements that appear more than ⌊ n/3 ⌋ times. The algorithm should run in linear time and in O(1) space.
Solutions:
思路:
(1)用一个hashmap存储数字和count键值对,然后遍历该hashmap取出count>n/2(n/3)的数字。但是这样意味着两次遍历,耗时。
(2)用位运算:
java中,int是32bits来表示的,那么生成一个含有32位的list。对list中的每一位,遍历整个int数组,当该位出现次数多于一半的话,list中该位置1,然后将list中的32位转换成int。
(3)Moore’s Voting算法
每找出两个不同的element,就成对删除即count–,最终剩下的一定就是所求
下面展现(3)的代码
public class Solution { int majorityElement(int[] nums) { int elem = 0; int count = 0; for(int i = 0; i < num.size(); i++) { if(count == 0) { elem = num[i]; count = 1; } else { if(elem == num[i]) count++; else count--; } } return elem; } }
- 【leetcode】Majority Element II,Majority element algorithm
- Leetcode: Majority Element &Majority Element II
- Leetcode Majority Element
- leetcode 169-Majority Element
- 【leetcode 哈希表】Majority Element
- LeetCode:Majority Element
- leetcode:Majority Element
- leetcode: Majority Element
- [LeetCode] Majority Element
- leetcode 153: Majority Element
- leetcode Majority Element
- LeetCode:Majority Element
- leetcode:Majority Element
- [LeetCode] Majority Element
- Leetcode-Majority Element
- [leetcode]Majority Element
- [LeetCode]Majority Element
- Leetcode: Majority Element
- ByteBuf
- Java 网络编程
- EventBus学习笔记
- Wireshark中The ntf is not running的问题
- nyoj 308 substring (最长逆序字符串)
- leetcode - Majority Element
- MAC 安装 brew
- 转载我感觉比较好的java线程的学习
- Android去標題時報錯:java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendan
- 排序和查找-基数排序 Radix Sorting
- Recyclerview用法浅析
- set resolution with direct show
- 小议Cookie和Session
- java中 创建对象时this调用基本数据类型