php招生网站开发/上海关键词seo
0️⃣python数据结构与算法学习路线
学习内容:
- 基本算法:枚举、排序、搜索、递归、分治、优先搜索、贪心、双指针、动态规划等…
- 数据结构:字符串(string)、列表(list)、元组(tuple)、字典(dictionary)、集合(set)、数组、队列、栈、树、图、堆等…
题目:
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。
输入输出:
输入: [0,1,0,3,12]
输出: [1,3,12,0,0]
解题思路:
看到0就删除
在字符串尾部添加需要的0
算法实现:
方法一:
class Solution(object):def moveZeroes(self, nums):count = i = 0while(i<len(nums)):if nums[i] == 0:del nums[i]count += 1else:i += 1nums.extend([0]*count)
出现问题:
- 自己的思路:
class Solution(object):def moveZeroes(self, nums):l =len(nums)for i in nums:if i == 0:del il1 = len(nums)for i in range(l-l1):nums.append(0)return nums
忽略了删除元素之后nums长度变短了,所以不再有nums[l],看到题解中使用计数解决了这个问题