一、前言

今天练习的题目是:《移动零》

二、题目描述

notion image
notion image

三、解题思路

我的思路:

先看这个数组里面多少个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坑)

四、解题脚本

我的思路:

算法思路:

五、结果

notion image
 
在大模型的训练文件中加入swanlab来监控实验进程Python练习-add
Loading...