LeetCode笔记--数组(2)

Remove Duplicates from Sorted Array--easy

给定一个排序好的数组,在原始数组中删除掉重复的元素,使得每个元素只出现一次,返回最终数组的长度。问题记录:

1.sorted!sorted!sorted!重要的事情说三遍!审题一定要认真,拿到题目忽略了这个条件,浪费了大部分时间在这上面。其实题目给的数组都是排序好的,也就是说,重复的元素都是在相邻位置上的,这样降低了难度。这也提供了一种思路:假如题目给的是乱序的,那么可以先进行排序操作来降低难度。

2.做这题的时候发现了关于for循环的重要知识(不知道理解的对不对),就是for循环的每次操作是在for语句之后进行的,也就是说,即使for in range()中的量已经改变,也是按最初的那个量去执行。如下图,因为随着循环进行,nums已经改变了长度,但是for语句中的nums仍然是最开始的长度,没有随之改变。这个原因导致之后的过程中i, j变量与新的len(nums)不匹配。

3.最后仍然是参考别人的思路(汗颜),发现while语句和for不同,while语句中的变量会随着循环操作的改变而改变。以此题为例,nums在循环中长度变短,因此while语句的len(nums)也会随之变小,这样思路就非常清晰了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值