Majority Element II

来源:互联网 发布:欧文总决赛数据统计 编辑:程序博客网 时间:2024/06/09 19:35

题目链接

思路:
这个题累了我半天。思路就是先排序。然后就简单了

错误:
在比较最后一个数组的时候我没有考虑循环退出的时候,最后一个符合要求的字符是没有判断是否要加入到结果里面的
也就是忘记了代码

            if(cnt>n/3)            {                result.add(tempInt);            }

要在循环结束之后再判断一次,用来考虑最后一个结果。以后要注意

代码

public class Solution {    public List<Integer> majorityElement(int[] nums) {    List<Integer> result=new ArrayList<Integer>();        int n=nums.length;        switch (n) {        case 0:             break;        case 1:            result.add(nums[0]);            break;        case 2:            if(nums[0]!=nums[1])            {                result.add(nums[0]);                result.add(nums[1]);            }            else            {                result.add(nums[0]);            }            break;        default:            Arrays.sort(nums);            int cnt=1;            int tempInt=nums[0];            for(int i=1;i<n;i++)            {                if(tempInt==nums[i])                {                    cnt++;                }                else                {                    if(cnt>n/3)                    {                        result.add(tempInt);                    }                    cnt=1;                    tempInt=nums[i];                }            }            if(cnt>n/3)            {                result.add(tempInt);            }            break;        }        return result;    }}
0 0
原创粉丝点击