美文网首页ACM题库~
LeetCod 80. Remove Duplicates fr

LeetCod 80. Remove Duplicates fr

作者: 关玮琳linSir | 来源:发表于2017-10-27 15:31 被阅读22次

    Follow up for "Remove Duplicates":
    What if duplicates are allowed at most twice?

    For example,
    Given sorted array nums = [1,1,1,2,2,3],

    Your function should return length = 5, with the first five elements of nums being 1, 1, 2, 2 and 3. It doesn't matter what you leave beyond the new length.

    题意:给一个数组,有序的,去掉超过两个的即可。

    java代码:

    
    class Solution {
        public int removeDuplicates(int[] nums) {
    
                    int count = 0;
            HashMap<Integer, Integer> map = new HashMap<>();
            for (int i = 0; i < nums.length; i++) {
    
                if (map.get(nums[i]) == null) {
                    count++;
                    map.put(nums[i], 1);
                } else if (map.get(nums[i]) == 1) {
                    count++;
                    map.put(nums[i], 2);
                }
            }
    
            List<Integer> list = new ArrayList<Integer>();
            for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
                if (entry.getValue() == 1) {
                    list.add(entry.getKey());
                } else {
                    list.add(entry.getKey());
                    list.add(entry.getKey());
                }
    
            }
    
            Collections.sort(list);
    
            for (int i = 0; i < list.size(); i++) {
                nums[i] = list.get(i);
            }
    
            return count;
        }
    
    }
    

    相关文章

      网友评论

        本文标题:LeetCod 80. Remove Duplicates fr

        本文链接:https://www.haomeiwen.com/subject/fozrpxtx.html