class Solution {
public List<Integer> majorityElement(int[] nums) {
List<Integer> ar = new ArrayList<>();
int cnt1 = 0;
int cnt2 = 0;
int ele1 = Integer.MIN_VALUE;
int ele2 = Integer.MIN_VALUE;
for (int i = 0; i < nums.length; i++) {
if (cnt1 == 0 && nums[i] != ele2) {
ele1 = nums[i];
cnt1++;
} else if (cnt2 == 0 && nums[i] != ele1) {
ele2 = nums[i];
cnt2++;
} else if (ele1 == nums[i]) {
cnt1++;
} else if (ele2 == nums[i]) {
cnt2++;
} else {
cnt1--;
cnt2--;
}
}
cnt1=0;
cnt2=0;
for(int x:nums){
if(ele1==x)
cnt1++;
else if(ele2==x){
cnt2++;
}
}
if(cnt1>(nums.length/3))
ar.add(ele1);
if(cnt2>(nums.length/3))
ar.add(ele2);
return ar;
}
}
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter