#力扣 LeetCode面試題 17.10. 主要元素 @FDDLC
阿新 • • 發佈:2021-02-02
技術標籤:演算法&資料結構
題目描述:
https://leetcode-cn.com/problems/find-majority-element-lcci/
Java程式碼:
class Solution { public int majorityElement(int[] nums) { //注意length能否為0 int base=-1,cnt=0; //base的初值任意 for(int num:nums){ if(cnt==0)base=num; if(base==num)cnt++; else cnt--; } if(cnt!=0){ for(int i=0,c=0,h=nums.length/2;i<nums.length;i++){ if(base==nums[i]&&++c>h)return base; } } return -1; } }
Java程式碼二:
class Solution { public int majorityElement(int[] nums) { //注意length能否為0 int base=-1,cnt=0,c=0,h=nums.length/2; //base的初值任意 for(int num:nums){ if(cnt==0)base=num; cnt+=base==num?1:-1; } if(cnt!=0){ for(int num:nums)if(base==num)c++; } return c>h?base:-1; } }