type
status
date
slug
summary
tags
icon
password

一、前言

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

二、题目描述

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
 
map/reducePython练习-类型转换
Loading...
JucanaYu
JucanaYu
干饭人,干饭魂🍚
最新发布
Python练习-类型转换
2025-4-9
Python练习-count、remove、append、extend
2025-4-8
Python练习-set和sorted
2025-4-6
Python练习-insert和del
2025-4-6
Python练习-range
2025-4-6
Python练习-双指针法
2025-4-6