leetcode
文章平均质量分 72
漂流瓶zps
把递归改成非递归
展开
-
python实现基本排序算法
目录排序(python)冒泡排序选择排序插入排序希尔排序归并排序快速排序堆排序计数排序排序(python)冒泡排序从序列一端开始往另一端冒泡,一次比较两个相邻的数的大小,两层循环,外层冒泡轮数,里层一次比较,时间复杂度o(n2)o(n^2)o(n2)codedef Bubble_Sort(arr: list[int]): for i in range(len(arr)...原创 2019-11-28 16:52:51 · 126 阅读 · 0 评论 -
python剑指offer系列-leetcode剑指offer系列专题
文章目录03. 数组中重复的数字 简单分析code04. 二维数组中的查找03. 数组中重复的数字 简单题目链接分析题目难度为简单,最直白的方法就是开辟哈希表记录访问过的数字。此题可以做到O(1)O(1)O(1),利用题目中的信息,一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。假设n为5,按照题意给定一个没有重复数字的数组index01234data31420可以看到,数据本身是索引的一个置换(题目给的信息),数据本身也可原创 2020-07-09 16:04:52 · 687 阅读 · 0 评论 -
LeetCode 857 Minimum Cost to Hire K Workers(python)
目录LeetCode 857 Minimum Cost to Hire K Workers(python)分析Code欢迎一起来参与leetcode刷题项目LeetCode 857 Minimum Cost to Hire K Workers(python)分析这题给了两个限制:要求K个工人每个人的工资是成比例的,假如选择了K个工人,他们的质量为q[0]:q[1]:,...:q[k−1]...原创 2019-12-25 20:54:02 · 288 阅读 · 0 评论 -
LeetCode 132 Palindrome Partitioning ||
目录LeetCode 132 Palindrome Partitioning ||分析Code欢迎一起来参与leetcode刷题项目LeetCode 132 Palindrome Partitioning ||分析这是一道动态规划题,基本上需要考虑一个字符串的子字符串的题目,都能往动归上考虑(子问题)。举例子:现在假设我们有一个字符串# 长度为8abcdaaaa# 它有如下几种分法...原创 2019-10-31 10:53:18 · 154 阅读 · 0 评论 -
LeetCode 518 Coin Change 2 (python)
目录LeetCode 518 Coin Change 2 (python)Code欢迎一起来参与leetcode刷题项目LeetCode 518 Coin Change 2 (python)这是 第322题的衍生。分析过程已经在LeetCode 322 Coing Change这里直接给出代码Codeclass Solution: def change(self, amount...原创 2019-10-11 22:28:10 · 289 阅读 · 0 评论 -
LeetCode 322 Coin Change (python)
目录LeetCode 322 Coin Change (python)分析状态定义状态转移Code欢迎一起来参与leetcode刷题项目LeetCode 322 Coin Change (python)分析这题本质上是一个完全背包问题,我们有给定面额的货币,用它们得到一个金额,每种面额的货币使用数量不限。很明显了,完全背包状态定义既然是背包问题,现在再来看看怎么定义状态。依然很明显。==...原创 2019-10-11 22:20:01 · 481 阅读 · 0 评论 -
字节跳动面试题,翻转链表,LeetCode 206、92、 25
字节跳动面试题,翻转链表,LeetCode 206 92 25题目LeetCode 206codeLeetCode 92LeetCode 25欢迎一起来参与leetcode刷题项目题目最近在看面经,看到一个字节跳动的算法题,然后发现这题在leetcode里有原型,先由浅入深的写三道leetcode的题目,最后再看看原题。听说字节跳动必考链表题LeetCode 206这是一道超级简单的题目,...原创 2019-09-03 00:25:59 · 808 阅读 · 0 评论 -
LeetCode 28 KMP next数组
目录LeetCode 28 KMP next数组KMPnext数组分析code总结欢迎一起来参与leetcode刷题项目LeetCode 28 KMP next数组这题的难度是一个easy,可能KMP算法已经人尽皆知了吧。KMP有关KMP和暴力匹配,简单对比一下S : ABCDABCABCDABCDP : ABCDABD现在发现了匹配失败暴力法:P后移一位S : ABCDABEA...原创 2019-08-30 21:50:31 · 420 阅读 · 0 评论 -
LeetCode 212 Word Search || (python)
目录LeetCode 212 Word Search II (python)分析DFS字典树Code欢迎一起来参与leetcode刷题项目LeetCode 212 Word Search II (python)分析想必写这题的你已经写过LeetCode 79了 79的题解,没写过可以先去写79题。这题第一眼看到好像和79题没什么区别,依然是如下结构for i in range(row):...原创 2019-08-20 19:15:23 · 276 阅读 · 0 评论 -
LeetCode 79 Word Search (python)
目录LeetCode 79 Word Search (python)分析find(i, j, word)Code pythonCode C++欢迎一起来参与leetcode刷题项目LeetCode 79 Word Search (python)分析这题是给我们一个由字符组成的二维列表结构,叫做board,我们要做的就是判断这个board里是否包含特定的某个字符串word。值得注意的是bo...原创 2019-08-20 18:40:08 · 516 阅读 · 0 评论 -
LeetCode 264 Ugly NUmber ||(丑数)
目录题目预览冷静分析再次冷静分析code(python)欢迎一起来参与leetcode刷题项目题目预览这题就是让我们输出前k个丑数冷静分析虽然第263体也是丑数,但我觉得这两题没啥关系。假设你已经解出了263题,那么在分析这题时,假如没有思路,直接暴力去做。1~~~n 的每一个数都判断是不是丑数,如果是丑数就加到答案里,好像也行,主要是该题给的测试数据不大,不过该题是O(n)解法的。再次...原创 2019-08-02 14:32:36 · 131 阅读 · 0 评论 -
LeetCode-208-Implement Trie (python)
LeetCode-208前缀树分析这题是让我们实现一个trie树,关于trie树,这里就不重复介绍了,不难,自己查阅都知道trie树适合存储字符串,interesting和interested共用interest这个前缀,这样能节省存储空间使用的数据结构我们要知道一个节点存储了它的子节点还需要一个flag来标记它是否是一个单词这里使用python的字典结构,当然你也可以新建...原创 2019-07-30 10:39:25 · 261 阅读 · 0 评论 -
Leetcode 145. Binary Tree Postorder Traversal(非递归后序遍历二叉树)
Leetcode 145. Binary Tree Postorder Traversal(非递归后序遍历二叉树)原题连接分析这题的关键在于如何非递归的后序遍历二叉树关键在于 左右中 = reverse(中右左)对比分析先看看先序遍历顺序是中 左 右在递归算法里的顺序如下print(root.val)visit(root.left)visit(root.right)...原创 2019-07-25 10:20:19 · 236 阅读 · 0 评论 -
LeetCode-189旋转数组-数组(python)
原题网址:点击打开链接给定一个数组,将数组中的元素向右移动k个位置,其中k是非负数。输入: [1,2,3,4,5,6,7] 和 k = 3输出: [5,6,7,1,2,3,4]解释:向右旋转 1 步: [7,1,2,3,4,5,6]向右旋转 2 步: [6,7,1,2,3,4,5]向右旋转 3 步: [5,6,7,1,2,3,4]要求尽可能想出更多的解决方...原创 2018-04-30 00:02:21 · 2974 阅读 · 0 评论 -
LeetCode-36有效的数独-数组(python)
原题网址:点击打开题目链接 判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。数字 1-9 在每一行只能出现一次。 数字 1-9 在每一列只能出现一次。 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。上图是一个部分填充的有效的数独。数独部分空格内已填入了数字,空白格用 '.' 表示。示例 1:输入:[ ...原创 2018-05-23 16:42:09 · 2176 阅读 · 0 评论 -
LeetCode-105从前序与中序遍历序列构造二叉树(python)
原题网址:点击打开题目的链接根据一棵树的前序遍历与中序遍历构造二叉树。注意:你可以假设树中没有重复的元素。例如,给出前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树: 3 / \ 9 20 / \ 15 7分析:首先我们都知道先序...原创 2018-11-03 12:06:50 · 1042 阅读 · 0 评论 -
LeetCode-115不同的子序列(python)
原题网址:点击打开原题 题目描述:给定一个字符串 S 和一个字符串 T,计算在 S 的子序列中 T 出现的个数。一个字符串的一个子序列是指,通过删除一些(也可以不删除)字符且不干扰剩余字符相对位置所组成的新字符串。不是指连续的子序列。(例如,"ACE" 是 "ABCDE" 的一个子序列,而 "AEC" 不是)如: 输入: S = "rabbbit", T ...原创 2018-12-15 01:09:32 · 1198 阅读 · 0 评论 -
LeetCode-120三角形最小路径和(python)
原题网址:点击打开题目 题目描述:给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。例如,给定三角形:[ [2], [3,4], [6,5,7], [4,1,8,3]]自顶向下的最小路径和为 11(即,2 + 3 + 5 + 1 = 11)。说明:如果你可以只使用 O(n) 的额外空间(n 为三角形的...原创 2018-12-18 15:47:28 · 1185 阅读 · 0 评论 -
LeetCode-121/122 买股票的最佳时机 1和 2(python)
题目链接:121 买股票的最佳时机 1122 买股票的最佳时机 2 题目1:这里就不做过多分析了,简单的原则取 i < j 中的 max( a[j] - a[i] ),记住 i 一定要小于 j 。题目1代码def maxProfit(self, prices): """ :type prices: List[int] ...原创 2019-01-21 02:16:47 · 239 阅读 · 0 评论 -
LeetCode-123 买股票的最佳时机 3(python)
题目链接:123 买股票的最佳时机 3 分析这个相比于前两题就要花点心思了,看题目原话“你最多可以完成 两笔 交易。注意: 你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)”,这个参考上篇博客里的1, 2, 3这个例子,执行过程依然是第一天买入,第二天卖出,收入为1,然后第二天再买入,第三天再卖出,收入为1,累计收入为2,(交易两次)。等同于第一天买入...原创 2019-01-21 02:34:35 · 704 阅读 · 0 评论 -
LeetCode-15 三数之和(python)
题目链接:三数之和分析:写过“两数之和”可以稍作思考,找到a,b,c满足a+b+c=0,就是找到a,b满足a+b=-c,这就是两数之和了,再防止重复的结果。这里给出相对通用的方案:先对数组进行排序,再前后夹逼求解,时间复杂度O(n^2)不单单是三数之和,k数之和也可以这样推广,O(max { n*logn, n^(k-1) } )直接看代码,在注释里解释,所得结果在数组中的下...原创 2019-02-13 18:00:32 · 265 阅读 · 0 评论 -
LeetCode-279 完全平方数(python)
分析:这是一个图论问题,0到n看作n+1图的n+1个节点1、若一个点的值加上平方数就能到另外一个点2、那么在两个点之间连一条边,且权值为1。问题变成了从0点到n点的最短距离,适合用bfs来处理'''图论问题BFS0到n看作N+1个点,若一个点的值加上一个平方数能到另外一个一点那么在两个点之间连一条边,且权值为1问题就变成了从0点到n点的最短距离'''class...原创 2019-04-10 16:00:02 · 691 阅读 · 0 评论 -
LeetCode-283移动零-数组(python)(c)
原题网址:点击打开链接刷题的github给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。 尽量减少操作次数。分析:题目的主要限制就是保持非零元素的相对顺序,并且把非零元素放到前面,大致思路就是从后向前遍历,...原创 2018-05-13 16:15:33 · 631 阅读 · 0 评论