type
status
date
slug
summary
tags
icon
password
一、前言
今天练习的题目是:《移动零》
二、题目描述


三、解题思路
我的思路:
先看这个数组里面多少个0(count),然后将0全部删除(remove),再将0全部放入末尾(append)
count():用于统计字符串里某个字符或者子字符出现的次数。语法:str.count(sub,start=0,end=len(string))
remove():用于移除列表中某个值的第一个匹配项。语法:list.remove(obj)
append():用于在列表末尾添加新对象。语法:list.append(obj)
算法上的思路:
建立两个指针:slow和fast。fast的作用就是遍历整个数组,slow的作用就是指向当前数组中第一个0。因为要保持相对的顺序,所以当fast遇到第一个非0数字的时候将其与slow指向的第一个0进行交换,这种交换方式没有打破原有的顺序。交换完成之后slow+1.这是一个好的交换方式。
(PS:就有点像slow指向第一个0坑,然后fast找到第一个非0的材料,两个数字交换就完成了对0坑的修补。修补完成之后slow+1去找下一个0坑)
四、解题脚本
我的思路:
算法思路:
五、结果

- 作者:JucanaYu
- 链接:https://jucanayu.top/article/1ce7ab71-7095-80ca-aace-d57bd5f198ef
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。