解答:
本人思路:再创建一个数组result,然后把nums数组的内容复制到result中,nums数据全部赋值10001(大于10000就行),然后两个数据依次比对(先把nums[0]=result[0]),把不相同的数据加入到nums中即可,最后得到目标数组。
class Solution {
public int removeDuplicates(int[] nums) {
int n=nums.length;
int[] result=new int[n];
for(int i=0;i<n;i++){
result[i]=nums[i];
nums[i]=10001;
}
int i=1,j=0;
nums[0]=result[0];
while(i<n){
if(nums[j]==result[i]) i++;
else{
j++;
nums[j]=result[i];
i++;
}
}
return j+1;
}
}
官方答案:
class Solution {
public int removeDuplicates(int[] nums) {
int n = nums.length;
if (n == 0) {
return 0;
}
int fast = 1, slow = 1;
while (fast < n) {
if (nums[fast] != nums[fast - 1]) {
nums[slow] = nums[fast];
++slow;
}
++fast;
}
return slow;
}
}
作者:LeetCode-Solution
链接:https://leetcode.cn/problems/remove-duplicates-from-sorted-array/solution/shan-chu-pai-xu-shu-zu-zhong-de-zhong-fu-tudo/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
标签:slow,nums,int,每日,Solution,fast,result,一题
From: https://www.cnblogs.com/ZLey/p/17140691.html