zoukankan      html  css  js  c++  java
  • 26.Remove Duplicates from Sorted Array

    class Solution:
        def removeDuplicates(self, nums: List[int]) -> int:
            j = 0
            for i in range(len(nums)):
                if i >j and nums[i] > nums[j] :
                    j += 1
                    nums[j] = nums[i]
            return j+1

    Java 版:


      • 此题并不是要求返回一个长度,而是,需要你将数组原地替换;
      • 返回替换后,数组里面的不重复的个数;
      • 用 idx 表示前面记录的位置,遍历到后面的时候,如果不相等;
      • 交换 nums[idx] 与 nums[i] 的位置即可。

        class Solution {
            public int removeDuplicates(int[] nums) {
                if(nums.length == 0) return 0;
                int idx = 0;//idx前面的都是不重复的元素
                for(int i = 0; i < nums.length; i++){
                    if(i > 0 && nums[i] == nums[i-1]) continue;//前后重复的元素,跳过
                    nums[idx++] = nums[i];//非重复,将其写入到idx位置,再将idx+1
                }
                return idx;
            }
    }
  • 相关阅读:
    NOIP2006代码及简析
    设计模式的原则
    UML应用
    关系
    活动图
    状态图
    UML概序
    UML基本图示
    用例
    介绍一个好的英语学习网站!
  • 原文地址:https://www.cnblogs.com/luo-c/p/12857164.html
Copyright © 2011-2022 走看看