LeetCode ( 26 ) ---[删除有序数组中的重复项](Java)

Posted 小智RE0

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode ( 26 ) ---[删除有序数组中的重复项](Java)相关的知识,希望对你有一定的参考价值。

题目来源:删除有序数组中的重复项



定义两个索引 i 和 j;
i 从 0 开始; j 从 1 开始;
当 i与 j 匹配元素相等时,索引 j 就保持向后移动;
若 i 与j匹配元素不相等; i 后移一位; 将索引 j 的匹配元素的值赋值给索引 i 匹配元素的值; j 向后移动;
最终要返回的是元素个数;所以为 i 加1位;

class Solution {
    public int removeDuplicates(int[] nums) {
        int i = 0;
        int n = nums.length;
        //当没有元素时,返回0;
        if (n == 0) {
            return n;
        }
        for (int j = 1; j < n; j++) {
            //若 i 与j匹配元素不相等;
            if (nums[j] != nums[i]) {
                //i 后移一位; 
                i++;
                // 将索引 j 的匹配元素的值赋值给索引 i 匹配元素的值;
                nums[i] = nums[j];
            }
            // 当 i与 j 匹配元素相等时,索引 j 就保持向后移动;
        }
        //最终要返回的是元素个数;所以为 i 加1位;
        return i + 1;
    }
}

以上是关于LeetCode ( 26 ) ---[删除有序数组中的重复项](Java)的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 168 Excel表列名称[26进制] HERODING的LeetCode之路

26-30LeetCode:Python解题

26-30LeetCode:Python解题

leetcode26

Leetcode 26

leetcode4.26