- 0
- 0
- 约4.22千字
- 约 11页
- 2026-10-31 发布于四川
- 举报
2026年计算机岗面试编程实操试题及答案
给你一个有序数组nums,请你原地删除重复出现的元素,使得每个元素最多出现两次,返回删除后数组的新长度。要求不要使用额外数组空间,必须原地修改输入数组,空间复杂度为O(1)。示例:输入nums=[1,1,1,2,2,3],输出长度5,修改后数组的前5位为[1,1,2,2,3];输入nums=[0,0,1,1,1,1,2,3,3],输出长度7,修改后数组的前7位为[0,0,1,1,2,3,3]。
解答:由于输入数组是有序的,所有重复元素一定连续出现,我们可以采用快慢指针法解决该问题,符合O(1)空间复杂度要求。快指针遍历整个数组扫描所有元素,慢指针标记已经处理完成、符合每个元素最多出现两次要求的数组末尾位置。我们只需要判断当前快指针指向的元素,和慢指针前两个位置的元素是否相等:如果相等,说明该元素已经出现过两次,当前元素重复需要跳过;如果不相等,说明当前元素符合要求,将其放到慢指针位置,慢指针后移一位。边界处理:当数组长度小于等于2时,所有元素都符合要求,直接返回原数组长度即可,初始时慢指针从位置2开始遍历。
代码实现(Python):
defremoveDuplicates(nums):
n=len(nums)
ifn=2:
returnn
slow=2
forfastinrange(2,n):
ifnu
您可能关注的文档
最近下载
- 集成电路零部件用钇化合物涂层标准化发展研究报告.docx
- 2025广东广州消防招聘辅助执勤类政府专职消防员87人考试参考题库及答案解析.docx VIP
- 小区多层住宅楼施工组织设计(框架结构).doc
- 2025广东广州消防招聘辅助执勤类政府专职消防员87人考试预测试题及答案解析.docx VIP
- 工程测量-114_隧道测量(4)隧道贯通误差.ppt VIP
- 2022浙ST19壁挂式轻便消防水龙及室内消火栓安装.pptx
- 隧道衬砌带模注浆专项方案.docx VIP
- 八年级生物选择健康的生活方式1省公开课一等奖全国示范课微课金奖PPT课件.pptx VIP
- 2025广东广州消防招聘辅助执勤类政府专职消防员87人考试题库附答案.docx VIP
- 《集成电路零部件用热喷涂钇化合物涂层》.docx
原创力文档

文档评论(0)