每天一道leetCode
Posted yixun2019
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了每天一道leetCode相关的知识,希望对你有一定的参考价值。
1、从排序数组中删除重复项
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。
不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。
题目解析: O(1) 额外空间是指空间复杂度。空间复杂度(Space Complexity)是对一个算法在运行过程中临时占用存储空间大小的量度,记做S(n)=O(f(n))。比如直接插入排序的时间复杂度是O(n^2),空间复杂度是O(1) 。
解题思路:循环遍历数组,计算不重复的元素个数j,一旦遇到不重复元素则进行替换。返回值为j
另一种解法: 循环遍历数组,计算重复的元素个数j,一旦遇到不重复元素则进行替换。返回值为nums.length-j;
第三种解法:使用splice()。
以上是关于每天一道leetCode的主要内容,如果未能解决你的问题,请参考以下文章
LeetCodeLeetCode之删除并获得点数——动态规划排序+动态规划
LeetCodeLeetCode之跳跃游戏Ⅱ——暴力解法+动态规划+贪婪算法