Majority Number II
2015-07-22 22:17
323 查看
题目描述
链接地址
解法
算法解释
Example
Given [1, 2, 1, 2, 1, 3, 3], return 1.
Note
There is only one majority number in the array.
Challenge
O(n) time and O(1) extra space.
.
链接地址
解法
算法解释
题目描述
Given an array of integers, the majority number is the number that occurs more than 1/3 of the size of the array.Example
Given [1, 2, 1, 2, 1, 3, 3], return 1.
Note
There is only one majority number in the array.
Challenge
O(n) time and O(1) extra space.
.
链接地址
http://www.lintcode.com/en/problem/majority-number-ii/解法
int majorityNumber(vector<int> nums){ // write your code here int num1 = 0, num2 = 0; int ret1 = 0, ret2 = 0; for (int i = 0; i < nums.size(); i++) { if (num1 != 0 && ret1 == nums[i]) { num1++; } else if (num2 != 0 && ret2 == nums[i]) { num2++; } else if (num1 != 0 && num2 != 0) { num1--; num2--; } else if (num1 == 0) { num1 = 1; ret1 = nums[i]; } else { num2 = 1; ret2 = nums[i]; } } int count1 = 0, count2 = 0; for (int i = 0; i < nums.size(); i++) { if (ret1 == nums[i]) { count1++; } else if (ret2 == nums[i]) { count2++; } } if (count1 > count2) { return ret1; } else { return ret2; } }
算法解释
正如算法Majority Number,同时删除两个元素,现在同时删除三个元素。相关文章推荐
- leetcode 179 Largest Number
- leetcode 24 Swap Nodes in Pairs
- leetcode 2 Add Two Numbers 方法1
- leetcode 2 Add Two Numbers 方法2
- [LeetCode]47 Permutations II
- [LeetCode]65 Valid Number
- [LeetCode]123 Best Time to Buy and Sell Stock III
- [LeetCode] String Reorder Distance Apart
- [LeetCode] Sliding Window Maximum
- [LeetCode] Find the k-th Smallest Element in the Union of Two Sorted Arrays
- [LeetCode] Determine If Two Rectangles Overlap
- [LeetCode] A Distance Maximizing Problem
- leetcode_linearList
- leetcode_linearList02
- LeetCode[Day 1] Two Sum 题解
- LeetCode[Day 2] Median of Two Sorted Arrays 题解
- LeetCode[Day 3] Longest Substring Without... 题解
- LeetCode [Day 4] Add Two Numbers 题解
- LeetCode [Day 5] Longest Palindromic Substring 题解
- LeetCode [Day 6] ZigZag Conversion 题解