2020/08/13 探索->初级算法
概述
由LeetCode官方推出的经典面试题目清单,将题目重新整理规划,从而为大家提供更好的练习体验和帮助大家找到理想的工作。将题目分为以下三个部分:
- 初级算法-> 帮助入门
- 中级算法-> 巩固训练
- 高级算法-> 提升进阶
数组
1.删除排序数组中的重复项 2020/08/13
给定一个排序数组,需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组控件,你必须在原地修改数组,并使用O(1)额外空间的条件下完成。
输入:nums =[1,1,2]
函数应该返回新的长度2,并且原数组nums的前两个元素被修改为1,2。
说明:
为什么返回数值是整数,但输出的答案是数组呢?
注意:输入数组是以引用的方式传递的,意味着在函数里修改输入数组对于调用者是可见的。
可以想象内部操作如下:
目前想法:首先明确,该数组是有序的,并且在原地修改数组数组,使用O(1)的额外空间条件下完成,且不需要考虑超出新长度后面的元素。
感觉挺简单的,由于有顺序,设定一个值用于给数组重新赋值(每当数组当中元素比之前的元素大的时候),最后返回这个值就可以了。
这个nums没有给定范围是有可能为空数组的,因此需要加判断。