探索队列和栈
软件园里卖煎饼
以文载意,以理铸心
展开
-
探索 队列和栈 图像渲染dfs解法
有一幅以二维整数数组表示的图画,每一个整数表示该图画的像素值大小,数值在 0 到 65535 之间。给你一个坐标 (sr, sc) 表示图像渲染开始的像素值(行 ,列)和一个新的颜色值 newColor,让你重新上色这幅图像。为了完成上色工作,从初始坐标开始,记录初始坐标的上下左右四个方向上像素值与初始坐标相同的相连像素点,接着再记录这四个方向上符合条件的像素点与他们对应四个方向上像素值与初始...原创 2020-03-30 19:12:55 · 82 阅读 · 0 评论 -
探索队列和栈 完全平方数bfs广度优先搜索
给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, …)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。示例 1:输入: n = 12输出: 3解释: 12 = 4 + 4 + 4.示例 2:输入: n = 13输出: 2解释: 13 = 4 + 9.思路:将n加入队列,然后n进行减去每一个ii,并返回队列中,直到队列空或者找到等于0的时候,代码:*...原创 2020-03-30 17:33:10 · 137 阅读 · 0 评论 -
BFS与DFS笔记整理
参考:https://blog.csdn.net/yishuige/article/details/51769997什么时候用DFS,什么时候用BFS?二维数组的题目,N小于20的,适用DFS。而一般 N<= 200,N<=1000这种,一定不可能用DFS去做。而且并不只是整个题目不能用DFS,其中的每一步也不能使用DFS。BFS的基本步骤1.将初始点(一个或多个)加入一个集合...原创 2020-03-22 22:20:50 · 386 阅读 · 0 评论 -
探索队列和栈 岛屿数量bfs广度优先搜索
给定一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,计算岛屿的数量。一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的。你可以假设网格的四个边均被水包围。示例 1:输入:11110110101100000000输出: 1示例 2:输入:11000110000010000011输出: 3class Solution {public: ...原创 2020-03-22 22:12:17 · 99 阅读 · 1 评论 -
探索队列和栈 设计循环队列
设计你的循环队列实现。 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。循环队列的一个好处是我们可以利用这个队列之前用过的空间。在一个普通队列里,一旦一个队列满了,我们就不能插入下一个元素,即使在队列前面仍有空间。但是使用循环队列,我们能使用这些空间去存储新的值。你的实现应该支持如下操作:MyCircula...原创 2020-03-22 19:12:17 · 113 阅读 · 1 评论 -
探索队列和栈 目标和 dfs深度优先搜索
给定一个非负整数数组,a1, a2, …, an, 和一个目标数,S。现在你有两个符号 + 和 -。对于数组中的任意一个整数,你都可以从 + 或 -中选择一个符号添加在前面。返回可以使最终数组和为目标数 S 的所有添加符号的方法数。示例 1:输入: nums: [1, 1, 1, 1, 1], S: 3输出: 5解释:-1+1+1+1+1 = 3+1-1+1+1+1 = 3+1+1...原创 2020-03-21 16:59:05 · 103 阅读 · 0 评论 -
探索队列和栈 岛屿数量 dfs深度优先搜索
给定一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,计算岛屿的数量。一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的。你可以假设网格的四个边均被水包围。示例 1:输入:11110110101100000000输出: 1示例 2:输入:11000110000010000011输出: 3代码如下:class Solution {public...原创 2020-03-21 15:26:58 · 97 阅读 · 0 评论 -
探索队列和栈 逆波兰表达式求值
根据逆波兰表示法,求表达式的值。有效的运算符包括 +, -, , / 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。说明:整数除法只保留整数部分。给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。示例 1:输入: [“2”, “1”, “+”, “3”, ""]输出: 9解释: ((2 + 1) * 3) = 9示例 2:输入: [...原创 2020-03-21 13:50:40 · 130 阅读 · 0 评论 -
探索队列和栈 每日温度
根据每日 气温 列表,请重新生成一个列表,对应位置的输出是需要再等待多久温度才会升高超过该日的天数。如果之后都不会升高,请在该位置用 0 来代替。例如,给定一个列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输出应该是 [1, 1, 4, 2, 1, 1, 0, 0]。提示:气温 列表长度的范围是 [1, 30000]。每个气温的值的均...原创 2020-03-21 13:34:40 · 106 阅读 · 0 评论 -
探索队列和栈 有效的括号
给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: “()”输出: true示例 2:输入: “()[]{}”输出: true示例 3:输入: “(]”输出: false示例 4:输入: “([)...原创 2020-03-20 14:01:26 · 87 阅读 · 0 评论 -
探索队列和栈 最小栈
设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。push(x) – 将元素 x 推入栈中。pop() – 删除栈顶的元素。top() – 获取栈顶元素。getMin() – 检索栈中的最小元素。代码如下:class MinStack {public: stack<int> min;//用来存放最小值 stack<in...原创 2020-03-20 13:23:44 · 67 阅读 · 0 评论