数组(2)--有序数组去重

  • 有序数组去重,最多重复2次
    /**
     * 允许重复两次
     * @param nums
     * @return
     */
    public static int removeDuplicatesTwice(int[] nums){
        int n=nums.length;
        int index=0;
        for (int i=0;i<n;++i){
            if (i>0 && i<n-1 && nums[i]==nums[i-1] && nums[i]==nums[i+1])
                continue;

            nums[index++]=nums[i];
        }
        return index;
    }
  • 扩展:有序数组去重,最多重复n次呢
/**
     *
     * @param num
     * @param occur 允许最大重复个数
     * @return
     */
    public static int removeCommonDuplicates(int[] num ,int occur){
        if (num.length<= occur) return num.length;

        int index=occur;
        for (int i=occur;i<num.length;++i){
            if (num[i] != num[index-occur]){
                num[index++]=num[i];
            }
        }
        return index;
    }
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容