
LeetCode中国 - LeetCode题解(Python)
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
本专栏专注于分享LeetCode平台上编程挑战的Python解决方案,旨在帮助程序员提高算法和编码技能。
LeetCode题解:数组与矩阵中的“将数组中的0移到末尾”问题的解决思路如下:
方法一:
首先可以考虑使用冒泡排序的思想,即每次遇到值为0的元素就将其向后移动,并在每一轮遍历中检查是否进行了交换操作。如果没有进行任何交换,则可以直接退出循环。这种方法的时间复杂度是O(n^2)。
```python
class Solution(object):
def moveZeroes(self, nums):
n = len(nums)
for i in range(n - 1):
swap = False
for j in range(n-i-1):
if nums[j] == 0:
nums[j], nums[j+1] = nums[j+1], nums[j]
swap = True
if not swap: break
return nums
```
方法二:
可以使用指针,将所有非零元素向前移动,并把剩余的位置全部赋值为0。这种方法的时间复杂度接近O(n)。
```python
class Solution(object):
def moveZeroes(self, nums):
i = 0
for num in nums:
if num != 0:
# 实现代码会在此处,将非零元素移到前面的位置。
```
注意:上述方法二的实现细节未完全给出。
全部评论 (0)


