- 博客(10)
- 收藏
- 关注
原创 岛屿的数量
这道题一般使用dfs来写,但是我用了像扫雷清空一样的开花函数来写也能过,而且代码量很少。将原题目的数组挨个遍历,当遇'1'就上下左右到处遍历,如果其是'1'进入递归,就把它改成'0',进入下一层递归,就能把这一片相邻的一全部改成'0'了,最后用计数器计数输出即可。
2023-12-16 16:26:39
103
原创 (贪心)分发饼干
我觉得这题的关键是偏移量的设置和遍历顺序,如果按第一种思维,那么先将两个数组由大到小排序后,是用的饼干来匹配小孩,如果匹配成共再向后面胃口大的小孩移动,确保每一次都是胃口最小的小孩匹配。局部最优:分量小的饼干优先满足胃口小的小孩:用饼干来匹配小孩。还有一种想法:用分量大的饼干优先满足胃口大的小孩。这两种方法最终都能达到全局最优:满足最多的小朋友胃口。贪心思想:由局部最优---->全局最优;
2023-12-14 18:10:29
197
1
原创 全排列(dfs)
这道题需要dfs,和n皇后一样,画出树形结构在遍历最深处收集结果,收集结果后通过pop_back()函数一次和改变映射标记的方法回溯。(叠加again)这个图做得好啊!
2023-12-12 16:00:45
101
1
原创 KMP算法
重点是定义这个next数组,用来存储各个字符如果发生不匹配情况时的回退信息,KMP算法在匹配失败的时候回去看最后一个匹配的字符它所对应的next数值,比如说是2,那么就会直接跳过匹配子串的前两个字符(即从下标为2的地方开始比较),至于next数组的生成,next数组的意义是指在匹配失败的时候子串中可以跳过的字符个数,next数组的本质实际上是寻找子串中“相同最长前后缀的长度”,用递推的方法不断的利用已经掌握的信息来避免重复的运算。
2023-12-11 14:05:38
100
1
原创 小明的背包2 - 完全背包问题
这个和01背包问题只是把商品变成了无限个,在01背包问题中提到,如果正序遍历那么会存在连续放入一个物品的问题,而这个问题恰恰需要我们放入同一个物品,所以如果是先遍历商品,应该从商品的重量一直遍历到背包的大小。完全背包问题的解决方法要比01背包更加灵活,可以替换遍历顺序也不会影响遍历结果。下面是先遍历背包的写法。
2023-12-08 18:54:29
180
原创 字符串转换(编辑距离)
这题是蓝桥杯群里推的,结果昨儿想了好久都没想到用动态规划(我就是简单暴力脑人儿),后来看题解摸索好久才知道是这么个意思。
2023-12-07 10:30:46
93
1
原创 N皇后问题
题目描述:给定一个N*N的棋盘,里面有N个皇后,使得她们不互相攻击(在棋盘中斜线,直线上没有其他皇后)。可知可以先深度优先遍历,如果能遍历到最后则有一种方法成立了,由计数器收获结果,再往前回溯。(叠甲)(这个图片是我转载的,但是我不知道咋去我的水印)通过递归函数后面的语句最后执行的性质可以用递归函数来写。输出:一个整数,表示一共多少合法放法。下面是检查一个位置合不合法的函数。以N=4为例如图分析。
2023-12-06 14:35:07
87
1
原创 走迷宫(BFS模板)
注意:(虽然这题不用考虑)要做迷宫的原数组应该全部初始化为做墙壁的元素(因为该题的墙壁是0所以就不用处理)。这题是最模板的BFS题了,直接用queue容器写模板就行。
2023-12-06 14:28:35
151
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅