当前位置:网站首页>LeetCode #26.删除有序数组中的重复项
LeetCode #26.删除有序数组中的重复项
2022-07-29 05:24:00 【张楚明ZCM】
题目截图

注意:题目要求不要占用额外空间,不许在原地修改输入数组。
方法:双指针法
思路:对数组中的元素相互比较,如果发现有重复的就删除。但这种方法在一般适用于新建一个新的空数组,把每个不重复的元素存入其中。如果直接在原数组修改,可能出现误操作情况。不如反过来思考。利用两个游标指示,一个游标负责记录修改,另一个用来对比。对比游标发现前后数值不同则用记录游标记录。这样可以保证新数组不会有重复的选项。返回记录的数值。
class Solution:
def removeDuplicates(self, nums: List[int]) -> int:
if not nums:
return 0
n = len(nums)
i = 1
j = 1
while j < n:
if nums[j] != nums[j - 1]:
nums[i] = nums[j]
i += 1
j += 1
return i
if __name__ == "__main__":
a = Solution()
nums = [1, 1, 2]
print(a.removeDuplicates(nums))
边栏推荐
猜你喜欢

Hal library learning notes-10 overview of Hal library peripheral driver framework

【软件工程之美 - 专栏笔记】28 | 软件工程师的核心竞争力是什么?(下)

智慧能源管理系统解决方案

Hal library learning notes-13 application of I2C and SPI

传统模型预测控制轨迹跟踪——圆形轨迹(功能包已经更新)

基于51单片机ADC0808的proteus仿真

【软件工程之美 - 专栏笔记】17 | 需求分析到底要分析什么?怎么分析?

scanBasePackages扫包范围配置

JUC并发知识点

物联网倾斜监测解决方案
随机推荐
Ml8 self study notes LDA principle formula derivation
简洁代码实现pdf转word文档
Design and implementation of QT learning notes data management system
ABSA1: Attentional Encoder Network for Targeted Sentiment Classification
DP4301—SUB-1G高集成度无线收发芯片
基于51单片机的四路抢答器仿真
Hal library learning notes-13 application of I2C and SPI
Hal library learning notes-10 overview of Hal library peripheral driver framework
循环链表和双向链表
【软件工程之美 - 专栏笔记】“一问一答”第2期 | 30个软件开发常见问题解决策略
基于DAC0832的直流电机控制系统
Reading papers on fake news detection (2): semi supervised learning and graph neural networks for fake news detection
一些工具,插件,软件链接分享给大家~
Huawei cloud 14 day Hongmeng device development -day5 drive subsystem development
IDEA 实用快捷键 新手必看
寒假集训总结 (1.23~1.28) [第一梯队]
LeetCode #19.删除链表的倒数第N个结点
QT learning notes - Import and export of Excel
STM32FF030 替代国产单片机——DP32G030
EPS32+Platform+Arduino 跑马灯