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)的主要内容,如果未能解决你的问题,请参考以下文章