leetcode

Description:

leetcode-283

Submission:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41

class :
def moveZeroes(self, nums: List[int]) -> None:
"""
Do not return anything, modify nums in-place instead.
"""
n = len(nums)
for i in range(n):
if (nums[i] == 0):
for j in range(n-1, i, -1):
if (nums[j] != 0):
nums[i], nums[j] = nums[j], nums[i]

# 我的方法二
class :
def moveZeroes(self, nums: List[int]) -> None:
n = len(nums)
for i in range(n):
if (nums[i] == 0):
for j in range(i+1, n):
if (nums[j] != 0):
nums[i], nums[j] = nums[j], nums[i]
break

# 我的方法三
class :
def moveZeroes(self, nums: List[int]) -> None:
n = len(nums)
for i in range(n):
if (nums[i] == 0):
nums.remove(0)
nums.append(0)

# 比较好的方法,时间复杂度O(N)
class :
def moveZeroes(self, nums: List[int]) -> None:
x = 0
for i in range(len(nums)):
if nums[i] != 0:
nums[x], nums[i] = nums[i], nums[x]
x += 1

Acceptance:(从下到上对应上述四种解法)

ac