zoukankan      html  css  js  c++  java
  • 【力扣】删除排序数组中的重复项 多语言题解

    1、C++
    思路:
    用双指针就可以
    为了再次节省空间,size==0直接退出

    class Solution {
    public:
        int removeDuplicates(vector<int>& nums)
        {
            if (nums.size() == 0) 
                return 0; //又是这种情况
            int i = 0, j = 0;
            while (j < nums.size())
            {
                if (nums[i] != nums[j])
                    nums[++i] = nums[j];
                j++;
            }
            return i + 1;
        }
    };
    

    执行用时 :40 ms, 在所有 Python3 提交中击败了95.81%的用户

    内存消耗 :15 MB, 在所有 Python3 提交中击败了8.16%的用户

    2、Python
    思路:
    用集合的思路,去重
    但是速度满了点

    class Solution:
        def removeDuplicates(self, nums: List[int]) -> int:
            nus = sorted(list(set(nums)))
            for i in range(len(nus)):
                nums[i] = nus[i]
            return len(nus)
    

    执行用时 :40 ms, 在所有 Python3 提交中击败了95.81%的用户

    内存消耗 :15 MB, 在所有 Python3 提交中击败了8.16%的用户

    3、Java
    思路:
    还是用双指针法,同样原理

    public int removeDuplicates(int[] nums) {
        if (nums.length == 0) return 0;
        int i = 0;
        for (int j = 1; j < nums.length; j++) {
            if (nums[j] != nums[i]) {
                i++;
                nums[i] = nums[j];
            }
        }
        return i + 1;
    }
    
  • 相关阅读:
    弹出窗口,关闭窗口刷新
    小知识
    将datatable转换为model
    根据空格换行
    获取和赋值checkbox,radiobutton,页面所有控件只读
    repater列求和
    internet 协议入门
    Django URL name详解
    Django 视图与网址进阶
    Django视图与网址
  • 原文地址:https://www.cnblogs.com/coding365/p/12872211.html
Copyright © 2011-2022 走看看