
算法
ifreewolf99
这个作者很懒,什么都没留下…
展开
-
算法题:滑动窗口的最大值
题目描述给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5}; 针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个: {[2,3,4],2,6,2,5,1}, {2,[3,4,2],6,2,5,1}, {2,3,[4,2,6],2,5,1}, {2,3,4,[2,6,2],5,1}, {2,3,4,2,[6,2,5],1}, {2,3,4,2原创 2020-08-23 19:15:33 · 248 阅读 · 0 评论 -
回溯法
回溯法也是使用深度优先或者广度优先的方法进行遍历:回溯法的使用流程一般如下:dfs(){ // 第一步,检查下标是否满足条件 // 第二步:检查是否被访问过,或者是否满足当前匹配条件 // 第三步:检查是否满足返回结果条件 // 第四步:都没有返回,说明应该进行下一步递归 // 标记 dfs(下一次) // 回溯} main() { for (对所有可能情况) { dfs() }}原创 2020-08-23 15:08:22 · 215 阅读 · 0 评论 -
深度优先和广度优先
题目描述地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。请问该机器人能够达到多少个格子?深度优先遍历方法:一条道走到黑,不撞南墙不回头。通常使用递归完成方便些。class Solution {public: usin原创 2020-08-22 17:28:03 · 189 阅读 · 0 评论