成都网站建设今明互联,如何在网上做网站,asp网站部署,网络方案设计与实现题目来源#xff1a; leetcode题目#xff0c;网址#xff1a;面试题 17.10. 主要元素 - 力扣#xff08;LeetCode#xff09;
解题思路#xff1a; 首先#xff0c;顺序遍历数组#xff0c;将不同的数字消去#xff0c;最后留下的数字若计数小于等于 0#xff…题目来源 leetcode题目网址面试题 17.10. 主要元素 - 力扣LeetCode
解题思路 首先顺序遍历数组将不同的数字消去最后留下的数字若计数小于等于 0则不存在主要元素。然后遍历数组对最后留下的数字计数判断其是否是主要元素。
解题代码 class Solution {public int majorityElement(int[] nums) {int res0;int cnt0;for(int num:nums){if(numres){cnt;}else{cnt--;if(cnt0){resnum;cnt1;}}}if(cnt0){return -1;}int count0;for(int num:nums){if(numres){count;}}return countnums.length/2?res:-1;}
} 总结 官方题解也是一样的思路。通过 Boyer-Moore 投票算法得到可能的主要元素或表名不存在主要元素然后判断可能的主要元素是否是主要元素。