python——力扣算法计划
文章平均质量分 62
力扣算法
heart_6662
人生舞台的大幕随时都可能拉开,关键是你愿意表演,还是选择躲避
展开
-
力扣——算法入门计划第十四天
今天是力扣——算法入门计划第十四天,也是最后一天,感谢各位大佬的支持和鼓励算法路上一起奋斗目录????题目????思路????代码????题目????集合????代码????哈希表????代码????题目190. 颠倒二进制位????思路每次把res左移,把n 的二进制末尾数字,拼接到结果res的末尾。然后把n 右移比如:????代码class Solution: # @param n, an integer原创 2022-01-27 17:17:46 · 5777 阅读 · 18 评论 -
力扣——算法入门计划第十三天
目录????题目????思路????代码????题目????思路????代码????题目231. 2 的幂????思路一个数n 是2 的幂,当且仅当n是正整数,并且n的二进制表示中仅包含1个1所以将n 的二进制表示中最低位的那个1 提取出来,再判断剩余的数值是否为0 即可一个技巧是n&(n-1)其中 & 表示按位与运算。该位运算技巧可以直接将 n二进制表示的最低位 1 移除????代码class Sol原创 2022-01-26 22:00:46 · 5545 阅读 · 17 评论 -
力扣——算法入门计划第十二天
目录????题目70. 爬楼梯????思路????我一开始的想法:暴力????记忆递推法????题目198. 打家劫舍????思路????动态规划????题目120. 三角形最小路径和????思路:????代码????题目70. 爬楼梯70. 爬楼梯????思路拿到题目,不慌,先读题:一共要爬n阶,所以n >= 0; 一次可以爬1或2个台阶; 问爬如果n阶有多少种走法比如n = 3 时 一共有三种 : 2+1 1+原创 2022-01-25 20:39:17 · 5408 阅读 · 31 评论 -
力扣——算法入门计划第十一天
目录????题目????回溯????代码????题目????思路????代码????题目????思路????代码????题目77. 组合????回溯1)先确定边界条件,if len(path) == k: res.append(path[:])2) dfs(i + 1, path + [i]) 递归下一个元素????代码class Solution: def combine(self, n: int,原创 2022-01-24 21:41:17 · 897 阅读 · 24 评论 -
力扣——算法入门计划第十天
目录????题目????方法一:递归????代码????方法二:迭代????代码????题目????方法一:迭代解法????方法二:递归????题目21. 合并两个有序链表我们可以注意到它插入的小到大,有方向的????方法一:递归递归时候,同时需要考虑边界情况。如果 l1 或者 l2 一开始就是空链表 ,那么没有任何操作需要合并,所以我们只需要返回非空链表。否则,我们要判断 l1 和 l2 哪一个链表的头节点的值更小,然后递归地决定下一原创 2022-01-23 21:04:07 · 622 阅读 · 13 评论 -
力扣——算法入门计划第九天
目录????题目????思路注意:多源广度优先搜索????详细见代码????题目????广度优先搜索????题目994. 腐烂的橘子????思路由题目我们可以知道每分钟每个腐烂的橘子都会使上下左右相邻的新鲜橘子腐烂,这其实是一个模拟广度优先搜索的过程。观察到对于所有的腐烂橘子,其实它们在广度优先搜索上是等价于同一层的节点的。有一个腐烂橘子(我们令其为超级源点)会在下一秒把这些橘子都变腐烂,而这个腐烂橘子刚开始在的时间是 -1 ,那么按照广度优先搜原创 2022-01-23 00:33:01 · 630 阅读 · 2 评论 -
力扣——算法入门计划第八天
目录????题目????DFS深度优先搜索总体思路????代码????题目????方法一:层层遍历????代码????题目617. 合并二叉树????DFS深度优先搜索总体思路可以使用深度优先搜索合并两个二叉树。从根节点开始同时遍历两个二叉树,不断向下搜索直达最后,并将对应的节点进行合并。两个二叉树的对应节点可能存在以下三种情况,对于每种情况使用不同的合并方式。1)如果两个二叉树的对应节点都为空,则合并后的二叉树的对应节点也为空;原创 2022-01-22 00:21:55 · 607 阅读 · 14 评论 -
力扣——算法入门计划第七天
目录????题目????方法一:BFS就是广度优先搜索????BFS代码????方法二:DFS????代码????题目????思路:????代码????题目733. 图像渲染????方法一:BFS就是广度优先搜索BFS就是广度优先搜索先要记录初始节点的颜色值(找个变量存储起来)1)我们从给定的起点开始,给它染色,进行广度优先搜索。这个初始节点当作第一层。找到初始节点周围四个节点,给它们染色(符合条件的才能染),2)这四个节点当作第原创 2022-01-21 00:03:44 · 1276 阅读 · 10 评论 -
力扣——算法入门计划第六天
目录????题目????思路????代码????题目????思路:????代码????题目3. 无重复字符的最长子串????思路我们分三步思考 边界确定———>移动规则————>计算长度,并记录,不断更新最长长度1)我们使用一个左指针表示字符串中的某个子串(或窗口)的左边界,(右边界是在我们判断的下一个重复字符前一位)2)在每一步的操作中,我们会将左指针向右移动一格,但需要保证这对应的子串中没有重复的字符。在python我们有内置函数se原创 2022-01-19 23:05:14 · 577 阅读 · 19 评论 -
力扣——算法入门计划第五天
目录????题目????方法一:????代码????方法二:快慢指针法????代码:????解读while为什么判断fast.next 和fast?而不是fast.next.next 和fast.next ?????题目????方法一:暴力解法????代码????方法二:双指针???? 代码????题目876. 链表的中间结点????方法一:这里借用一下题解里的图通过数组访问,我们可以发现个结论:中间节点在数组的索引为N/2原创 2022-01-18 21:12:27 · 495 阅读 · 2 评论 -
力扣——算法入门计划第四天
目录????题目????方法一:暴力????代码????方法二:位运算????代码????方法三:双指针????代码????题目????方法一:???? 代码????方法二:????代码????题目344. 反转字符串????方法一:暴力python内置反转列表的函数 reserve????代码class Solution: def reverseString(self, s: List[str]) -> N原创 2022-01-17 18:18:53 · 1261 阅读 · 6 评论 -
力扣——算法入门计划第三天
目录????题目????思路:????代码????题目????思路????代码????题目283. 移动零????思路:1)双指针,移动0,原地移动2)快指针遍历,慢指针被替换移动,相当于0替换到最后????代码class Solution: def moveZeroes(self, nums: List[int]) -> None: """ Do not return anything, mod原创 2022-01-17 00:05:55 · 305 阅读 · 0 评论 -
力扣——算法入门计划第二天
目录????题目????思路???? 题目????思路:????代码????题目977. 有序数组的平方????思路将数组中所有元素平方再排序class Solution: def sortedSquares(self, nums: List[int]) -> List[int]: return sorted(num * num for num in nums)???? 题目189. 轮转数组原创 2022-01-15 23:31:09 · 763 阅读 · 10 评论 -
力扣——算法入门计划第一天
目录????题目一????思路????代码???? 题目二????思路:????代码????题目三????思路:????代码:????题目一704. 二分查找????思路从中间开始查找,因为列表是有序的(而且是升序的),目标值小于中间的数,就向左走(左边的数小)目标值大于中间的数,就向右走(右边的数大)????代码class Solution: def search(self, nums: List[int], tar原创 2022-01-14 21:24:50 · 751 阅读 · 12 评论