LeetCode简单题:26. 删除排序数组中的重复项(Python,C++,Java)

一.解法

https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/
要点:双指针
不要用新数组存。
Python,C++,Java都用双指针法,i表示当前位置,j去找第一个不等同nums[i]的位置,i++,注意到最后不要越界需要加一句判断语句

二.Python实现

class Solution:
    def removeDuplicates(self, nums: List[int]) -> int:
        answer=1
        
        if(len(nums)==0):
            return 0
        if(len(nums)==1):
            return 1

        i=0
        j=0
        
        while(jlen(nums)-1):
                     break;
            
            if(j>len(nums)-1):
                 break
            nums[i+1]=nums[j]
            answer+=1
            i+=1
        
        return answer

三.C++实现

class Solution {
public:
    int removeDuplicates(vector& nums) {
        int answer=1;
        int i,j;
        if(nums.size()==0) return 0;
        if(nums.size()==1) return 1;

        i=0;
        j=0;
        
        while(jnums.size()-1) break;
            }
            if(j>nums.size()-1) break;
            nums[i+1]=nums[j];
            answer++;
            i++;
        }
    
        return answer;
    }
};

四.java实现

class Solution {
    public int removeDuplicates(int[] nums) {
        int answer=1;
        int i,j;
        if(nums.length==0) return 0;
        if(nums.length==1) return 1;

        i=0;
        j=0;
        
        while(jnums.length-1) break;
            }
            if(j>nums.length-1) break;
            nums[i+1]=nums[j];
            answer++;
            i++;
        }
    
        return answer;

    }
}

你可能感兴趣的:(LeetCode简单题:26. 删除排序数组中的重复项(Python,C++,Java))