zoukankan      html  css  js  c++  java
  • leetcode——26.删除排序数组中的重复项

    双指针:

    class Solution:
        def removeDuplicates(self, nums) -> int:
            if len(nums)<2:
                return len(nums)
            i,j=0,1
            while j<len(nums):
                if nums[i]==nums[j]:
                    nums.pop(j)
                else:
                    i,j=i+1,j+1
            return len(nums)

     执行用时116ms。

    执行用时48ms的别人的做法:

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

    多妙啊,但是我就是想不到。。。。

                                                                                                                   ——2019.10.8


    public int removeDuplicates(int[] nums) {
            //双指针
            int len = nums.length;
            if(len == 0){
                return 0;
            }else if(len == 1){
                return 1;
            }
            int i = 1,j = 1;
            while(i<len){
                if(nums[i]<= nums[j-1]){
                    i++;
                }else if(nums[i]>nums[j-1]) {
                    nums[j] = nums[i];
                    i++;
                    j++;
                }
            }
            return j;
        }

     ——2020.7.8

    我的前方是万里征途,星辰大海!!
  • 相关阅读:
    准确率99.9%的离线IP地址定位库
    手写一个消息队列以及延迟消息队列
    rabbitmq介绍
    污点和亲和力高级调度方式
    ceph
    Vue作业
    label和labelSeletor
    http状态简记
    数据库
    作业
  • 原文地址:https://www.cnblogs.com/taoyuxin/p/11636204.html
Copyright © 2011-2022 走看看