1. 程式人生 > >[LeetCode-169] Majority Element(找出陣列中超過一半元素)

[LeetCode-169] 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.

【分析】

每找出兩個不同的element,則成對刪除。最終剩下的一定就是所求的。

可擴充套件到⌊ n/k ⌋的情況,每k個不同的element進行成對刪除。

程式碼如下:

int majorityElement(int* nums, int numsSize) 
{
    if(!nums)
		return -1;

	int i = 0;	
	int count = 0 ;	
	int majorityElement;
	for(i = 0;i < numsSize;i++) {
		if(count == 0) {
			majorityElement = nums[i];
			count ++;
		}
		else {
			if(majorityElement == nums[i]) {
				count ++;
			}
			/*If they are different,double free*/
			else {
				count --;
			}
				
		}
	}
	
	return  majorityElement;
}


相關推薦

[LeetCode-169] 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

陣列超過一半的資料

  class Solution { public: // 出現的次數超過陣列長度的一半,表明這個數字出現的次數比其他數出現的次數的總和還多。 int MoreThanHalfNum_Solution(vector<int> numbers) {

Leetcode27:Remove Element移除陣列指定的元素

題目解析:給定一個vector<int>陣列,要求把不等於給定的val的若干個數字移動到該陣列的最前面,並返回不等於val的數字的數目。不允許另外定義陣列來運算。我做的答案:class Solution { public:     int removeElemen

LeetCode 169. 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

Leetcode#169. Majority Element求眾數

個數 結果 num public 實現 main pre array 給定 題目描述 給定一個大小為 n 的數組,找到其中的眾數。眾數是指在數組中出現次數大於 ? n/2 ? 的元素。 你可以假設數組是非空的,並且給定的數組總是存在眾數。 示例 1: 輸入: [3,2,3]

LeetCode:581. Shortest Unsorted Continuous Subarray陣列不需要排序的最小陣列

      Given an integer array, you need to find one continuous subarray that if you only sort this subarray in ascending order

LeetCode:53. Maximum Subarray陣列中和最大的陣列

         Given an integer array nums, find the contiguous subarray (containing at least one number) which has the l

【python3】leetcode 169. Majority Element easy

169. Majority Element (easy) Given an array of size n, find the majority element. The majority element is the element that appears m

Problem B: 零起點學演算法81——陣列最大元素的位置下標值

#include<stdio.h> int main(void) { int n,a[10],i,max; while(scanf("%d",&n)!=EOF) { for(i=0;i<n;i++) scanf("%d",

微策略2011校園招聘筆試題陣列兩個只出現一次的數字

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Three Sum陣列,所有三個數字的組合,其和為給定值的情況

import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * Three Sum * * Given an array S of n integ

陣列最大元素的位置下標值

Description 找出陣列中最大的元素的下標。 Input 多組測試,每組先輸入一個不大於10的整數n 然後是n個整數 Output 輸出這n個整數中最大的元素及下標值 Sample Input 4 1 4 5 6 Sample Output 6 3 #i

Leetcode421. 陣列兩個元素異或的最大值

Leetcode421. Maximum XOR of Two Numbers in an Array 題目 Given a non-empty array of numbers, a0, a1, a2, … , an-1, where 0 ≤ ai

陣列超過半數的數

題目:陣列中出現次數超過一半的數字 idea: solution1:如果是排序好的陣列,則位於陣列正中間位置的數字即為要尋找的數字。因此先對陣列進行排序,再取出中間位置的數字。該解法需要對陣列排序,時間複雜度略高 solution2:利用快排的想法,找到下標是陣列中間位置的

陣列第k大的數時間複雜度分析、C++程式碼實現. TopK in array. ( leetcode

找出陣列中第k大的數. TopK in array. ( leetcode - 215 ) 最近面試過程中遇到的一個題目,也是大資料時代常見的題目,就來總結一下。 面試題目: 1、10億數中,找出最大的100個數。用你能想到的最優的時間和空間效率。 2

LeetCode#169. Majority Element(超過陣列長度一半元素)

題目:給定一個數組,並且陣列中存在一個元素,該元素在陣列中的出現次數超過陣列長度的一半(n/2) 難度:Easy 思路:A Fast Ma jority Vote Algorithm 陣列中相鄰的兩個

【Divide and Conquer】169. Majority Elementeasy

比較 esc time ble nbsp 也有 assume ray more #Week_1# #From LeetCode# Description: Given an array of size n, find the majority element.

LeetCode 169. Majority Element

del wikipedia IT color alt print int get one 問題: Given an array of size n, find the majority element. The majority element is the element

javaleetcode852 山脈陣列的封頂索引二分查詢法陣列最大值的下標Peak Index in a Mountain Array

題目描述: 我們把符合下列屬性的陣列 A 稱作山脈: A.length >= 3 存在 0 < i < A.length - 1 使得A[0] < A[1] < ... A[i-1] < A

leetcode 169 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 as