文章 2022-10-28 来自:开发者社区

力扣——算法入门计划第十四天

 今天是力扣——算法入门计划第十四天,也是最后一天,感谢各位大佬的支持和鼓励算法路上一起奋斗目录题目思路代码 题目集合代码哈希表代码题目190. 颠倒二进制位思路每次把 res 左移,把 n 的二进制末尾数字,拼接到结果 res 的末尾。然后把 n 右移比如:代码 class Solution: # @param n, an integer # @return an ...

力扣——算法入门计划第十四天
文章 2022-10-28 来自:开发者社区

力扣——算法入门计划第十三天

 目录题目思路代码 题目 思路代码 题目231. 2 的幂思路一个数 n 是 2 的幂,当且仅当 n是正整数,并且 n 的二进制表示中仅包含 1 个 1所以将 n 的二进制表示中最低位的那个 1 提取出来,再判断剩余的数值是否为 0 即可一个技巧是n & (n - 1)其中 & 表示按位与运算。该位运算技巧可以直接将 n二进制表示的最低位 1 移除代码 class So....

力扣——算法入门计划第十三天
文章 2022-10-28 来自:开发者社区

力扣——算法入门计划第十二天

 目录题目70. 爬楼梯思路我一开始的想法:暴力记忆递推法题目 198. 打家劫舍 思路 动态规划 题目120. 三角形最小路径和思路: 代码题目70. 爬楼梯70. 爬楼梯思路拿到题目,不慌,先读题:一共要爬 n 阶,所以n >= 0;一次可以爬 1 或 2 个台阶;问爬如果n 阶有多少种走法 比如n = 3 时  一共有三种 : 2+1 1+1+1 &...

力扣——算法入门计划第十二天
文章 2022-10-28 来自:开发者社区

力扣——算法入门计划第十一天

 目录题目回溯代码 题目 思路 代码 题目思路代码 题目77. 组合回溯1)先确定边界条件,if len(path) == k:                res.append(path[:])2)  dfs(i + 1, path + [i])  递归下一个元素代码 class S....

力扣——算法入门计划第十一天
文章 2022-10-28 来自:开发者社区

力扣——算法入门计划第十天

 目录题目方法一:递归代码 方法二:迭代代码题目方法一:迭代解法 方法二:递归题目21. 合并两个有序链表我们可以注意到它插入的小到大,有方向的方法一:递归递归时候,同时需要考虑边界情况。如果 l1 或者 l2 一开始就是空链表 ,那么没有任何操作需要合并,所以我们只需要返回非空链表。否则,我们要判断 l1 和 l2 哪一个链表的头节点的值更小,然后递归地决定下一个添加到结果里的节点.....

力扣——算法入门计划第十天
文章 2022-10-28 来自:开发者社区

力扣——算法入门计划第九天

 目录题目思路 注意:多源广度优先搜索 详细见代码题目 广度优先搜索 题目994. 腐烂的橘子思路 由题目我们可以知道每分钟每个腐烂的橘子都会使上下左右相邻的新鲜橘子腐烂,这其实是一个模拟广度优先搜索的过程。观察到对于所有的腐烂橘子,其实它们在广度优先搜索上是等价于同一层的节点的。有一个腐烂橘子(我们令其为超级源点)会在下一秒把这些橘子都变腐烂,而这个腐烂橘子刚开始在的时间是 -1 ,....

力扣——算法入门计划第九天
文章 2022-10-28 来自:开发者社区

力扣——算法入门计划第八天

 目录题目 DFS深度优先搜索总体思路代码 题目 方法一:层层遍历 代码题目617. 合并二叉树 DFS深度优先搜索总体思路可以使用深度优先搜索合并两个二叉树。从根节点开始同时遍历两个二叉树,不断向下搜索直达最后,并将对应的节点进行合并。两个二叉树的对应节点可能存在以下三种情况,对于每种情况使用不同的合并方式。1)如果两个二叉树的对应节点都为空,则合并后的二叉树的对应节点也为空;2)如....

力扣——算法入门计划第八天
文章 2022-10-28 来自:开发者社区

力扣——算法入门计划第七天

 目录题目方法一:BFS就是广度优先搜索BFS代码 方法二:DFS代码题目 思路:代码题目733. 图像渲染方法一:BFS就是广度优先搜索BFS就是广度优先搜索先要记录初始节点的颜色值(找个变量存储起来)1)我们从给定的起点开始,给它染色,进行广度优先搜索。这个初始节点当作第一层。找到初始节点周围四个节点,给它们染色(符合条件的才能染),2)这四个节点当作第二层。再找到这四个节点周围八....

力扣——算法入门计划第七天
文章 2022-10-28 来自:开发者社区

力扣——算法入门计划第六天

 目录题目思路 代码 题目思路:代码题目3. 无重复字符的最长子串思路 我们分三步思考 边界确定———>移动规则————>计算长度,并记录,不断更新最长长度1)我们使用一个左指针表示字符串中的某个子串(或窗口)的左边界,(右边界是在我们判断的下一个重复字符前一位)2)在每一步的操作中,我们会将左指针向右移动一格,但需要保证这对应的子串中没有重复的字符。在python我们有内....

力扣——算法入门计划第六天
文章 2022-10-28 来自:开发者社区

力扣——算法入门计划第五天

 目录题目 方法一:代码 方法二:快慢指针法代码: 解读while为什么判断fast.next 和fast?而不是fast.next.next 和fast.next ? 题目 方法一:暴力解法代码 方法二:双指针 代码题目876. 链表的中间结点 方法一:这里借用一下题解里的图 通过数组访问,我们可以发现个结论:中间节点在数组的索引为N/2      ...

力扣——算法入门计划第五天

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

产品推荐

智能引擎技术

AI Online Serving,阿里巴巴集团搜推广算法与工程技术的大本营,大数据深度学习时代的创新主场。

+关注