27. 移除元素

Posted panweiwei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了27. 移除元素相关的知识,希望对你有一定的参考价值。

技术图片

 

 

 技术图片

代码一:

 1 class Solution(object):
 2     def removeElement(self, nums, val):
 3         """
 4         :type nums: List[int]
 5         :type val: int
 6         :rtype: int
 7         """
 8         if nums == []:
 9             return 0
10         i, j = 0, len(nums) - 1
11 
12         while i < j:
13             if nums[i] != val:
14                 i += 1
15             elif nums[j] == val:
16                 j -= 1
17             elif nums[i] == val:
18                 nums[i], nums[j] = nums[j], nums[i]
19                 i += 1
20                 j -= 1
21         # print(nums, i, j)
22         if nums[i] == val:
23             return len(nums[:i])
24         else:
25             return len(nums[:i])+1

代码二:

 1 class Solution(object):
 2     def removeElement(self, nums, val):
 3         """
 4         :type nums: List[int]
 5         :type val: int
 6         :rtype: int
 7         """
 8         if len(nums) == 0:
 9             return 0
10         # 双指针
11         i, j = 0, len(nums) - 1
12         while i < j:
13             # j指向的等于val,j前移
14             if nums[j] == val:
15                 j -= 1
16                 continue
17             # 如果i指向的等于val,交换i和j的值,j前移
18             if nums[i] == val:
19                 nums[i], nums[j] = nums[j], nums[i]
20                 j -= 1
21             # i每一趟都后移
22             i += 1
23         # print(nums, i, j)
24         if nums[i] == val:
25             return len(nums[:i])
26         else:
27             return len(nums[:i]) + 1

 

以上是关于27. 移除元素的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode27. 移除元素

java刷题--27移除元素

LeetCode.27 移除元素

LeetCode 27.移除元素

27. 移除元素

Java算法 每日一题 编号27:移除元素