ÉèΪÊ×Ò³ ¼ÓÈëÊÕ²Ø

TOP

[LeetCode] Majority Element
2015-11-21 01:05:10 À´Ô´: ×÷Õß: ¡¾´ó ÖРС¡¿ ä¯ÀÀ:2´Î
Tags£ºLeetCode Majority Element

?

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.


½âÌâ˼·£º

1¡¢ÓÃÒ»¸ömap¼Ç¼ÿ¸öÊýµÄ³öÏֵĴÎÊý¡£Èô³öÏÖij¸öÊýµÄ¼ÆÊý´óÓÚn/2£¬·µ»Ø¸ÃÊý¡£

?

class Solution {
public:
    int majorityElement(vector
  
    &num) {
        int len = num.size();
        map
   
     count; for(int i=0; i
    
      len/2){ return num[i]; } } return 0; } };
    
   
  
2¡¢¶ÔÓÚÒ»¸öÅÅÐòÊý×éÀ´Ëµ£¬ÈôÖÚÊý´æÔÚ£¬ÖÚÊý¿Ï¶¨ÊÇÖмäÄǸöÊý¡£
class Solution {
public:
    int majorityElement(vector
  
    &num) {
        std::sort(num.begin(), num.end());
        return num[num.size()/2];
    }
};
  
3¡¢Í¶Æ±Ëã·¨¡£¿ÉÒÔÏë³É´òÀÞ̨£¬Ì¨ÉÏÄǸöÈËÈôÊäÓ®´ÎÊýÏàͬ£¬ÔòÏĄ̂£¬×îºó´ò°ÜËûµÄÈËÉĮ̈¡£ÖÚÊý¿Ï¶¨ÊÇ×îºóµÄÓ®¼Ò¡£Õâ¸öËã·¨ÓõÄʱ¼ä×îÉÙÁË¡£

?

?

class Solution {
public:
    int majorityElement(vector
  
    &num) {
        int len = num.size();
        if(len==0){
            return 0;
        }
        int candidate = num[0];
        int count = 1;
        for(int i=1; i
   
    4¡¢Î»Ëã·¨¡£¿¼Âǵ½Ã¿¸öÊý¶¼¿ÉÒÔÓÃ32λ¶þ½øÖƱíʾ£¬¶Ôÿ¸öÊýµÄÿһλ¶þ½øÖÆÎª1µÄ¼ÆÊý£¬Èôij¸ö¶þ½øÖÆÎ»µÄ¼ÆÊý´óÓÚn/2£¬¿Ï¶¨ÓÐÖÚÊýµÄ¹±Ïס£ÕâÖÖ°ì·¨ºÜÐÂÓ±£¬ËäÈ»ËٶȱȲ»ÉÏͶƱËã·¨£¬µ«ÊÇ¿ªÍØË¼Î¬Âï¡£ÕâÀï˵һµã£¬µÚÒ»ÖÖ·½·¨ÖУ¬¶¨ÒåÁËmap
    
      count£¬¶ÔÓÚÿ¸öмÓÈëµÄ¼üÖµ£¬ÆäֵĬÈÏΪ0£¬µ«ÊǶÔÓÚintÊý×éÀàÐÍ£¬Ã¿¸öÊý×é³õʼ»¯ÎªËæ»úÖµ£¬Òò´ËÒªÓÃmemsetº¯Êýѽ¡£
     

?

?

class Solution {
public:
    int majorityElement(vector
      
        &num) {
        int len = num.size();
        if(len==0){
            return 0;
        }
        int bitCount[32];
        memset(bitCount, 0, 32*sizeof(int));
        for(int i=0; i
       
         len/2) //µÚiλΪ1µÄ¼ÆÊý´óÓÚÒ»°ë£¬¿Ï¶¨ÓÐÖÚÊýµÄ¹±Ï× result += (int)pow(2, i); } return result; } };
       
      


?

?

¡¾´ó ÖРС¡¿¡¾´òÓ¡¡¿ ¡¾·±Ìå¡¿¡¾Í¶¸å¡¿¡¾Êղء¿ ¡¾ÍƼö¡¿¡¾¾Ù±¨¡¿¡¾ÆÀÂÛ¡¿ ¡¾¹Ø±Õ¡¿ ¡¾·µ»Ø¶¥²¿¡¿
·ÖÏíµ½: 
ÉÏһƪ£ºLeetCode¨DHouse Robber ѰÕÒÊý×.. ÏÂһƪ£ºUVA - 156 Ananagrams

ÆÀÂÛ

ÕÊ¡¡¡¡ºÅ: ÃÜÂë: (ÐÂÓû§×¢²á)
Ñé Ö¤ Âë:
±í¡¡¡¡Çé:
ÄÚ¡¡¡¡ÈÝ: