
leetcode刷题
if 雨田人尹==雷伊:
这个作者很懒,什么都没留下…
展开
-
力扣刷题(python)50天——第五十天:反转字符串
力扣刷题(python)50天——第五十天:反转字符串题目描述给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。示例 1:输入: “Let’s take LeetCode contest”输出: “s’teL ekat edoCteeL tsetnoc”注意:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。来源:力扣(Leet...原创 2019-09-13 11:43:49 · 352 阅读 · 0 评论 -
力扣刷题(python)50天——第三十五天:排序链表
力扣刷题(python)50天——第三十五天:排序链表题目描述在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序。示例 1:输入: 4->2->1->3输出: 1->2->3->4示例 2:输入: -1->5->3->4->0输出: -1->0->3->4->5来源:力扣(L...原创 2019-09-12 09:26:53 · 193 阅读 · 0 评论 -
力扣刷题(python)50天——第三十四天:LRU缓存机制
力扣刷题(python)50天——第三十四天:LRU缓存机制题目描述运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put 。获取数据 get(key) - 如果密钥 (key) 存在于缓存中,则获取密钥的值(总是正数),否则返回 -1。写入数据 put(key, value) - 如果密钥不存在,则写入其...原创 2019-09-11 22:09:10 · 254 阅读 · 0 评论 -
力扣刷题(python)50天——第三十八天:求众数
力扣刷题(python)50天——第三十八天:求众数题目描述给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在众数。示例 1:输入: [3,2,3]输出: 3示例 2:输入: [2,2,1,1,1,2,2]输出: 2来源:力扣(LeetCode)链接:https://leetcode...原创 2019-09-12 17:31:56 · 336 阅读 · 0 评论 -
力扣刷题(python)50天——第三十三天:环形链表 II
力扣刷题(python)50天——第三十三天:环形链表 II题目来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/linked-list-cycle-ii著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。方法本题与上一题几乎一模一样,只修改了部分语句解答# Definition for singly-linked...原创 2019-09-10 22:03:37 · 199 阅读 · 0 评论 -
力扣刷题(python)50天——第三十二天:环形链表
力扣刷题(python)50天——第三十二天:环形链表题目来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/linked-list-cycle方法想法是模拟链表一直走下去,但问题在于怎么判定进入了循环。循环链表的标志之一是某个节点有两个不同的节点指向它。我设置了一个列表来存储链表的每一个节点,每当进入一个新的节点时进行判断是否该节点...原创 2019-09-10 21:39:25 · 185 阅读 · 0 评论 -
力扣刷题(python)50天——第三十一天:只出现一次的数字
力扣刷题(python)50天——第三十一天:只出现一次的数字题目描述给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4来源:力扣(LeetCode)链接:htt...原创 2019-09-10 21:06:15 · 177 阅读 · 0 评论 -
★★★★★★★★力扣刷题(python)50天——第三十天:二叉树的最大路径和★★★★★★★★
力扣刷题(python)50天——第三十天:二叉树的最大路径和题目描述给定一个非空二叉树,返回其最大路径和。本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。示例 1:输入: [1,2,3] 1 / \ 2 3输出: 6示例 2:输入: [-10,9,20,null,null,15,7]-10/ 9 ...原创 2019-09-06 11:13:31 · 185 阅读 · 0 评论 -
力扣刷题(python)50天——第二十九天:买卖股票的最佳时机 II
力扣刷题(python)50天——第二十九天:买卖股票的最佳时机 II题目描述给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格...原创 2019-09-05 19:23:12 · 333 阅读 · 0 评论 -
力扣刷题(python)50天——第二十八天:买卖股票的最佳时机
力扣刷题(python)50天——第二十八天:买卖股票的最佳时机题目描述给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股...原创 2019-09-03 16:04:36 · 281 阅读 · 0 评论 -
力扣刷题(python)50天——第二十七天:二叉树的最大深度
力扣刷题(python)50天——第二十七天:二叉树的最大深度题目描述给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7],3/ 9 20/ 15 7返回它的最大深度 3 。来源:力扣(LeetCode)链接:https:/...原创 2019-09-03 15:16:56 · 209 阅读 · 0 评论 -
力扣刷题(python)50天——第三十六天:最小栈
力扣刷题(python)50天——第三十六天:最小栈题目描述设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。push(x) – 将元素 x 推入栈中。pop() – 删除栈顶的元素。top() – 获取栈顶元素。getMin() – 检索栈中的最小元素。示例:MinStack minStack = new MinStack();minStack....原创 2019-09-12 09:42:55 · 245 阅读 · 0 评论 -
力扣刷题(python)50天——第三十七天:相交链表
力扣刷题(python)50天——第三十七天:相交链表题目描述https://leetcode-cn.com/problems/intersection-of-two-linked-lists/方法将两个链表的节点分别按原来顺序放到两个列表中,从最后一位开始逐个检测是否有相同节点。解答# Definition for singly-linked list.# class List...原创 2019-09-12 17:31:40 · 180 阅读 · 0 评论 -
力扣刷题(python)50天——第三十九天:反转链表
力扣刷题(python)50天——第三十九天:反转链表题目描述反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题?来源:力扣(LeetCode)链接:https://leetcode-cn.com/...原创 2019-09-12 19:25:32 · 177 阅读 · 0 评论 -
力扣刷题(python)50天——第四十九天:反转字符串
力扣刷题(python)50天——第四十九天:反转字符串题目描述编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。示例 1:输入:[“h”,“e”,“l”,“l”,“o”]输出:[“...原创 2019-09-13 11:32:15 · 400 阅读 · 0 评论 -
力扣刷题(python)50天——第四十八天:Nim游戏
力扣刷题(python)50天——第四十八天:Nim游戏题目描述你和你的朋友,两个人一起玩 Nim 游戏:桌子上有一堆石头,每次你们轮流拿掉 1 - 3 块石头。 拿掉最后一块石头的人就是获胜者。你作为先手。你们是聪明人,每一步都是最优解。 编写一个函数,来判断你是否可以在给定石头数量的情况下赢得游戏。示例:输入: 4输出: false解释: 如果堆中有 4 块石头,那么你永远不会...原创 2019-09-13 11:23:57 · 588 阅读 · 0 评论 -
力扣刷题(python)50天——第四十七天:除自身以外数组的乘积
力扣刷题(python)50天——第四十七天:除自身以外数组的乘积题目描述给定长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。示例:输入: [1,2,3,4]输出: [24,12,8,6]说明: 请不要使用除法,且在 O(n) 时间复杂度内完成此题。进阶:你...原创 2019-09-13 11:04:37 · 183 阅读 · 0 评论 -
力扣刷题(python)50天——第四十六天:删除链表中的节点
力扣刷题(python)50天——第四十六天:删除链表中的节点题目描述来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/delete-node-in-a-linked-list/著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。方法起初有点没看懂题,觉得给的变量是不是少了head,但是仔细琢磨了一下,又没什么问题,还...原创 2019-09-13 10:07:39 · 217 阅读 · 0 评论 -
力扣刷题(python)50天——第四十五天:二叉树的最近公共祖先
力扣刷题(python)50天——第四十五天:二叉树的最近公共祖先题目描述来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/lowest-common-ancestor-of-a-binary-tree/著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。方法本题即上题的延申。参考:https://leetcod...原创 2019-09-12 22:21:00 · 290 阅读 · 0 评论 -
力扣刷题(python)50天——第四十四天:二叉搜索树的最近公共祖先
力扣刷题(python)50天——第四十四天:二叉搜索树的最近公共祖先题目描述来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/lowest-common-ancestor-of-a-binary-search-tree/著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。方法拿到题后感觉虽然做了很多题了,有很多想法,...原创 2019-09-12 21:52:18 · 220 阅读 · 0 评论 -
力扣刷题(python)50天——第四十三天:2的幂
力扣刷题(python)50天——第四十三天:2的幂题目描述给定一个整数,编写一个函数来判断它是否是 2 的幂次方。示例 1:输入: 1输出: true解释: 20 = 1示例 2:输入: 16输出: true解释: 24 = 16示例 3:输入: 218输出: false来源:力扣(LeetCode)链接:https://leetcode-cn.com/proble...原创 2019-09-12 21:27:08 · 221 阅读 · 0 评论 -
力扣刷题(python)50天——第四十二天:二叉搜索树中第K小的元素
力扣刷题(python)50天——第四十二天:二叉搜索树中第K小的元素题目描述来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/kth-smallest-element-in-a-bst著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。方法递归获取每个节点,放入列表中排序查找。解答# Definition for...原创 2019-09-12 21:15:31 · 173 阅读 · 0 评论 -
力扣刷题(python)50天——第四十一天:存在重复元素
力扣刷题(python)50天——第四十一天:存在重复元素题目描述给定一个整数数组,判断是否存在重复元素。如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。示例 1:输入: [1,2,3,1]输出: true示例 2:输入: [1,2,3,4]输出: false示例 3:输入: [1,1,1,3,3,4,3,2,4,2]输出...原创 2019-09-12 20:45:42 · 248 阅读 · 0 评论 -
力扣刷题(python)50天——第四十天:数组中的第k个最大元素
力扣刷题(python)50天——第四十天:数组中的第k个最大元素题目描述在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 1:输入: [3,2,1,5,6,4] 和 k = 2输出: 5示例 2:输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 4说明:你可以假设 k 总是有效...原创 2019-09-12 19:56:51 · 223 阅读 · 0 评论 -
力扣刷题(python)50天——第二十六天:格雷编码
力扣刷题(python)50天——第二十六天:格雷编码题目描述给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n。你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。示例:输入:nums1 =...原创 2019-09-03 14:47:41 · 239 阅读 · 0 评论 -
力扣刷题(python)50天——第二十五天:合并两个有序数组
力扣刷题(python)50天——第二十五天:合并两个有序数组题目描述给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n。你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。示例:输入:num...原创 2019-09-02 11:18:06 · 227 阅读 · 0 评论 -
力扣刷题(python)50天——第十一天:有效的括号
力扣刷题(python)50天——第十一天:有效的括号题目描述给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: “()”输出: true示例 2:输入: “()[]{}”输出: true示例 3:...原创 2019-08-28 20:50:59 · 247 阅读 · 0 评论 -
力扣刷题(python)50天——第十天:最接近的三数之和
力扣刷题(python)50天——第十天:最接近的三数之和题目描述给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。例如,给定数组 nums = [-1,2,1,-4], 和 target = 1.与 target 最接近的三个数的和为 2. (-1 + ...原创 2019-08-28 19:57:49 · 190 阅读 · 0 评论 -
力扣刷题(python)50天——第九天:三数之和
力扣刷题(python)50天——第九天:三数之和题目描述给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[[-1, 0, 1],[-...原创 2019-08-28 17:29:29 · 208 阅读 · 0 评论 -
力扣刷题(python)50天——第八天:最长公共前缀
力扣刷题(python)50天——第八天:最长公共前缀题目描述给定 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2。图中垂直线代表输入数组 [1,8,6...原创 2019-08-27 19:10:22 · 268 阅读 · 0 评论 -
力扣刷题(python)50天——第七天:盛最多水的容器
力扣刷题(python)50天——第七天:盛最多水的容器题目描述给定 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2。图中垂直线代表输入数组 [1,8,...原创 2019-08-27 16:56:51 · 248 阅读 · 0 评论 -
力扣刷题(python)50天——第六天:回文数
力扣刷题(python)50天——第六天:回文数题目描述判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向...原创 2019-08-27 15:37:13 · 213 阅读 · 0 评论 -
力扣刷题(python)50天——第五天:字符串转换整数 (atoi)
力扣刷题(python)50天——第五天:字符串转换整数 (atoi)题目描述请你来实现一个 atoi 函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,...原创 2019-08-27 15:15:58 · 297 阅读 · 0 评论 -
力扣刷题(python)50天——第四天:整数反转
力扣刷题(python)50天——第四天:整数反转题目描述给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反...原创 2019-08-26 22:14:52 · 247 阅读 · 0 评论 -
力扣刷题(python)50天——第三天:最长回文子串
力扣刷题(python)50天——第三天:最长回文子串题目描述给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: “babad”输出: “bab”注意: “aba” 也是一个有效答案。示例 2:输入: “cbbd”输出: “bb”来源:力扣(LeetCode)链接:https://leetcode-cn.com/probl...原创 2019-08-26 21:04:06 · 351 阅读 · 0 评论 -
力扣刷题(python)50天——第一天:两数相加
力扣刷题(python)50天——第一天:两数相加题目描述:给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。来源:力扣(LeetCode)链接:https://leetcode-...原创 2019-08-22 20:42:04 · 357 阅读 · 0 评论 -
力扣刷题(python)50天——第十二天:合并两个有序链表
力扣刷题(python)50天——第十二天:合并两个有序链表题目描述将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4来源:力扣(LeetCode)链接:https://leetcode-cn.com/pro...原创 2019-08-29 19:53:58 · 222 阅读 · 0 评论 -
力扣刷题(python)50天——第十三天:合并K个排序链表
力扣刷题(python)50天——第十三天:合并K个排序链表题目描述合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。示例:输入:[1->4->5,1->3->4,2->6]输出: 1->1->2->3->4->4->5->6来源:力扣(LeetCode)链接:https://lee...原创 2019-08-30 10:29:30 · 208 阅读 · 0 评论 -
力扣刷题(python)50天——第十四天:删除排序数组中的重复项
力扣刷题(python)50天——第十四天:删除排序数组中的重复项题目描述给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1,...原创 2019-08-30 11:07:58 · 338 阅读 · 0 评论 -
力扣刷题(python)50天——第二十四天:子集
力扣刷题(python)50天——第二十四天:子集题目描述给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例:输入: nums = [1,2,3]输出:[[3],[1],[2],[1,2,3],[1,3],[2,3],[1,2],[]]来源:力扣(LeetCode)链接:https://leetcode...原创 2019-09-01 16:22:37 · 256 阅读 · 0 评论