前言:我是老菜鸡了

原题:

给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。
不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。

  • 示例:

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

题目来源:
作者:力扣 (LeetCode)
链接:https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/x2gy9m/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

此处要注意不考虑数组中超出新长度的后面的元素(这个困扰了我两天)
官方答案:

var removeDuplicates = function (nums) {let n = nums.length;if (n === 0) {return 0;}let fast = 1, slow = 1;while (fast < n) {if (nums[fast] !== nums[fast - 1]) {nums[slow] = nums[fast]slow++}fast++}return slow
}

自己的答案:

var removeDuplicates = function (nums) {let slow = 0for (let i = 0; i <= nums.length; i++) {if (nums[i] !== nums[i + 1]) {nums[slow] = nums[i]slow++;}}return slow
}

该题目也并不难(但我还是看了官方答案的思路才写出来自己的答案),难在好好审题

  • 思路:
    对数组进行一遍遍历:
for (let i = 0; i <= nums.length; i++) {}

遍历过程中判断遍历中数字和后一个数字是否一样:

if (nums[i] !== nums[i + 1]) {}

如果一样,就不执行操作,
反之,将值赋给nums[slow],同是将slow的值自加1:

            nums[slow] = nums[i]slow++;

哦豁,自己写的代码用时少一些

有序数组原地删除重复出现的元素问题(js)相关推荐

  1. 每天一道LeetCode-----从有序数组中删除重复元素

    Remove Duplicates from Sorted Array 原题链接Remove Duplicates from Sorted Array 给定一个有序数组,对于数组中的重复项,只需要保留 ...

  2. c语言实现 给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。

    思路: 1.j=1,因为j=0,i=0时就是一个数没必要比较. 2.++i的原因是,nums[0]是第一个元素不需要改变,需要改变长度的范围是nums[1]到nums[numSize].++i执行结果 ...

  3. C++ leetcode 26. 删除排序数组中的重复项 给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。

    一.思路: nowPos当前第几个没有重复的数,count指向第nowPos+1个重复数的位置 二.C++ int removeDuplicates(vector<int>& nu ...

  4. 【数据结构与算法】之深入解析“删除有序数组中的重复项”与“移除元素”的求解思路与算法示例

    删除有序数组中的重复项 一.题目要求 给你一个升序排列的数组 nums ,请你原地删除重复出现的元素,使每个元素只出现一次,返回删除后数组的新长度.元素的相对顺序应该保持 一致 . 由于在某些语言中不 ...

  5. python有序数组中删除元素_python刷LeetCode:26. 删除排序数组中的重复项

    题目描述: 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成 ...

  6. java删除有序数组中的重复元素_算法刷刷刷Leetcode第26题删除排序数组中的重复项...

    给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度.不要使用额外的数组空间,你必须在原地修改输入数组 并在使用 O(1) 额外空间的条件下完成.示例 ...

  7. 14. Leetcode 80. 删除有序数组中的重复项 II (数组-同向双指针-快慢指针)

    给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 最多出现两次 ,返回删除后数组的新长度.不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条 ...

  8. 8. Leetcode 26. 删除有序数组中的重复项 (数组-同向双指针-快慢指针)

    给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度.不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件 ...

  9. 删除有序数组中的重复项(数组去重)

    给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度. 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条 ...

最新文章

  1. Struts2 入门修行第一天 | 小节二
  2. 周五话分析 | 方法论难落地?来个量身定制版本吧(AARRR模型)
  3. java map null吗_Java: Map里面的键和值可以为空吗?
  4. c# json使用集
  5. java 的原码、补码、反码小总结
  6. 数据结构pta选择判断复习
  7. Windows下Java调用BAT批处理不弹出cmd窗口
  8. Windows 下使用ftp批处理脚本
  9. 【bzoj 3531】 [Sdoi2014]旅行(树链剖分+树套树)
  10. Ubuntu安装usb库
  11. c语言实验——G-鞍点计算
  12. matlab 取符号函数,Matlab 符号表达式和符号函数的操作
  13. java post 提交数据_java中使用post提交数据
  14. 微信小程序:uu传书
  15. html做战网首页,战网更新agent一半不动
  16. MongoDB集群节点RECOVERING故障恢复
  17. 工作15年码农总结:学编程难吗?那只是你觉得难!
  18. 新项目中用 C# or Java
  19. 小程序消息推送(含源码)java实现小程序推送,springboot实现微信消息推送
  20. 微信小程序开发采坑记录1

热门文章

  1. iOS菜鸟之AFN的二次封装
  2. jqGrid专题:jqGrid原理
  3. C# ReportViewer 绑定数据源
  4. Script标签与访问HTML页面
  5. 发布时和调试时使用不同的JS
  6. 可以学习的国外课件链接地址(自己收集)
  7. 矢量归一化_7. 从矢量观测到姿态观测
  8. 面对不同的业务场景,选择零码还是低码?
  9. 【DevCloud · 敏捷智库】两种你必须了解的常见敏捷估算方法
  10. 【读一本书】《昇腾AI处理器架构与编程》--神经网络基础知识(2)