基础做网站,有哪些网站上可以做试卷,网站策划方案800字,网站开发与管理共多少页面试题解答 仅供学习 文章目录 面试题解答题目一、python代码1.1 代码1.2 示例用法1.2.1 示例11.2.2 示例2 二、讲解2.1 初始化2.2 遍历2.3 返回 题目 要解决这个问题#xff0c;可以使用双指针方法进行原地修改#xff0c;以确保每个元素最多出现两次。 一、python代码
1.1…面试题解答 仅供学习 文章目录 面试题解答题目一、python代码1.1 代码1.2 示例用法1.2.1 示例11.2.2 示例2 二、讲解2.1 初始化2.2 遍历2.3 返回 题目 要解决这个问题可以使用双指针方法进行原地修改以确保每个元素最多出现两次。 一、python代码
1.1 代码
def removeDuplicates(nums):if not nums:return 0# 指针 j 用于维护新数组的位置j 0# 当前元素计数器count 1# 遍历数组for i in range(1, len(nums)):# 如果当前元素与前一个元素相同则增加计数if nums[i] nums[i - 1]:count 1else:count 1 # 重置计数器# 只保留当前元素的前两次出现if count 2:nums[j] nums[i]j 1return j
1.2 示例用法
1.2.1 示例1
nums1 [1, 1, 1, 2, 2, 3] length1 removeDuplicates(nums1) print(length1) # 输出: 5 print(nums1[:length1]) # 输出: [1, 1, 2, 2, 3]
1.2.2 示例2
nums2 [0, 0, 1, 1, 1, 1, 2, 3, 3] length2 removeDuplicates(nums2) print(length2) # 输出: 7 print(nums2[:length2]) # 输出: [0, 0, 1, 1, 2, 3, 3]
二、讲解
2.1 初始化
j 指针用于跟踪新数组的位置。count 计数器用于跟踪当前元素出现的次数。
2.2 遍历
从第二个元素开始i 1检查当前元素是否与前一个元素相同。如果相同则 count 增加否则重置 count 为 1。如果 count 不超过 2将当前元素放到 j 指向的位置并移动 j 指针。
2.3 返回
函数返回 j即新数组的长度。