zoukankan      html  css  js  c++  java
  • leetcode 从排序数组中删除重复项

    最近的学习是相当的无聊,并且很无趣,每天都浪费了很多时间,比如今天下午,就是搞一手成语接龙,我也是醉了…
    并且我也不知道学什么了,所以决定刷题
    虽然我是0算法基础,0逻辑能力的渣渣,但是尽力每天做一道题,总会慢慢进步的

    给定数组 nums = [1,1,2],
    函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。
    你不需要考虑数组中超出新长度后面的元素。

    我最初的想法

        let removeDuplicates = function (nums) {
            for (let i = 0; i !== nums.length; i++) {
                //从当前开始向后找到相同的就删掉
                while (nums.indexOf(nums[i], i + 1) !== -1) {
                    nums.splice(i, 1);
                }
            }
            return nums.length;
        };
    

    由于条件给定的是一个排序后的有序数组,所以可以少掉一层循环

        let removeDuplicates = function (nums) {
            for (let i = 0; i !== nums.length; i++) {
                if (nums[i] === nums[i + 1]) {
                    nums.splice(i, 1);
                    i--;
                }
            }
            return nums.length;
        };
    

    可以看见别人的代码,不愧是大佬的想法,牛皮

    var removeDuplicates = function (nums) {
        let j = 0;
        for (let i = 0, t = ''; i < nums.length; i++) {
            if (nums[i] !== t) {
                t = nums[i];
                nums[j] = t;
                j++
            }
        }
        return j;
    };
    
  • 相关阅读:
    初识EntityFramework6
    EntityFramework6 快速入门教程
    使用EntityFramework6连接MySQL
    Less的安装与配置
    Gitlab-CI持续集成之Runner配置和CI脚本
    CPU简单科普
    Mysql技能之【性能优化方案】
    自动化测试探索学习之路(1)
    性能测试知识之基础理论
    http协议、cookie及session
  • 原文地址:https://www.cnblogs.com/sbzy/p/9374984.html
Copyright © 2011-2022 走看看