做过类似的题,一眼就是双指针,刚好也就是题解。
if not nums:return 0p1 = 0
for p2 in range(1, len(nums)):if nums[p2] != nums[p1]:p1 += 1nums[p1] = nums[p2]return p1 + 1
根据规律,重复的数字必定相连,那么只要下一个数字与上一个数字不同,那么上一个数字就可以“入库”,就是数字变化了几次,那么就只有几个数字是唯一的。
指针1(慢指针)是列表索引,所以返回的长度需要加一。
做过类似的题,一眼就是双指针,刚好也就是题解。
if not nums:return 0p1 = 0
for p2 in range(1, len(nums)):if nums[p2] != nums[p1]:p1 += 1nums[p1] = nums[p2]return p1 + 1
根据规律,重复的数字必定相连,那么只要下一个数字与上一个数字不同,那么上一个数字就可以“入库”,就是数字变化了几次,那么就只有几个数字是唯一的。
指针1(慢指针)是列表索引,所以返回的长度需要加一。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/623159.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!