From bf863d2d8c0e5316ba1d41e1a22f76f883ff8bc1 Mon Sep 17 00:00:00 2001 From: heroding77 <2441145504@qq.com> Date: Mon, 26 Feb 2024 16:04:47 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A00027=E7=A7=BB=E9=99=A4?= =?UTF-8?q?=E5=85=83=E7=B4=A0=20python3=20=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- problems/0027.移除元素.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/problems/0027.移除元素.md b/problems/0027.移除元素.md index dbde3d19..2a2005d7 100644 --- a/problems/0027.移除元素.md +++ b/problems/0027.移除元素.md @@ -253,6 +253,27 @@ class Solution: ``` +``` python 3 +# 相向双指针法 +# 时间复杂度 O(n) +# 空间复杂度 O(1) +class Solution: + def removeElement(self, nums: List[int], val: int) -> int: + n = len(nums) + left, right = 0, n - 1 + while left <= right: + while left <= right and nums[left] != val: + left += 1 + while left <= right and nums[right] == val: + right -= 1 + if left < right: + nums[left] = nums[right] + left += 1 + right -= 1 + return left + +``` + ### Go: ```go