26. Remove Duplicates from Sorted Array
思路一:单指针法,遍历数组,遇到和下一个元素不同的把这个元素按顺序保存到数组的前面,用指针记录保存的个数,注意数组只有一个元素和遍历到最后俩元素的特殊情况。
class Solution: def removeDuplicates(self,nums): sum = 0 if len(nums) <= 1: return 1 for i in range(len(nums)-1): if i == (len(nums)-2): if nums[i] != nums[i+1]: nums[sum] = nums[i] nums[sum+1] = nums[i+1] sum +=2 else: nums[sum] = nums[i] sum +=1 else: if nums[i] != nums[i+1]: nums[sum] = nums[i] sum +=1 nums = nums[:sum] return sum if __name__ == '__main__':#提交时main函数内容不用带上 nums = [1] solution = Solution() print(solution.removeDuplicates(nums))
思路二,双指针和思路一大同小异
1 class Solution: 2 def removeDuplicates(self, nums): 3 """ 4 :type nums: List[int] 5 :rtype: int 6 """ 7 if len(nums) <= 1: 8 return len(nums) 9 i = 0 10 j = 1 11 while (j < len(nums)): 12 if nums[i] == nums[j]: 13 nums.pop(j) 14 else: 15 j = j + 1 16 i = j - 1 17 return len(nums)
思路三:使用set,但是貌似开辟空间了,但是在力扣也通过了
1 class Solution: 2 def removeDuplicates(self, nums): 3 nus = list(set(nums))#得到一个无序的无重复数字的list 4 nus = sorted(nus) 5 for i in range(len(nus)): 6 nums[i] = nus[i] 7 return len(nums[:len(nus)])
作者:你的雷哥
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!