算法实现
小小小书柜
这个作者很懒,什么都没留下…
展开
-
栈,有效的括号(Python实现)
有效的括号(Python) 给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。 解题思路 将字符串从前向后(从后向前也可)依次取出,若取出的字符与栈顶元素可以组成有效的括号,则弹出栈顶元素,否则将该字符压入栈顶。字符全部取出后若栈为空,则字符串有效,反之无效。 代码实现 class Solution(object): def isValid(self, s): """ :type s: str :rtype:原创 2020-05-18 00:27:59 · 262 阅读 · 0 评论 -
广度优先搜索,完全平方数
完全平方数(Python) 给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, …)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。 解题思路 需要累加的完全平方数为从1开始到比n小的最大平方数,遍历他们的和组合,找到最快的路径。注意:为了避免重复,累加时不要加上比自己小的完全平方数。 代码实现 from collections import deque class Solution(object): def numSquares(self, n):原创 2020-05-17 18:33:59 · 235 阅读 · 0 评论 -
广度优先搜索,打开转盘锁
打开转盘锁(Python) 解题思路 单向搜索的思路,即从“0000”出发,遍历它的邻近的组合,不是目标的,加入到已经访问过的队列到中,并加入到队列中,等待下一次循环开始,后领扣时间超时。改用双向搜索,从目标和“0000”两边一起出发,哪边的当前层集合的待检测密码锁数目少,就检测哪一边。当其中有一个集合为0表示断路,不可能接通。当其中一个集合中的邻居包含在另外一个集合当中则表示连接成功。 单向搜索形式 LeetCode-Python-752. 打开转盘锁 from collections import de原创 2020-05-17 00:12:19 · 155 阅读 · 0 评论 -
广度优先搜索,岛屿数量
岛屿数量(Python) 解题思路 当找到初始“1”的时候,将其坐标入队,依据队列的FIFO特性,从队列中取出坐标,对其坐标的上下左右元素进行访问。 递归形式 递归形式简洁易懂: class Solution(object): def numIslands(self, grid) -> int: if len(grid) == 0: retur...原创 2020-05-06 23:45:34 · 177 阅读 · 0 评论