Leetcode
小布归来了
这个作者很懒,什么都没留下…
展开
-
(Leetcode) 分数到小数 - Python实现
题目:分数到小数给定两个整数,分别表示分数的分子 numerator 和分母 denominator,以字符串形式返回小数。如果小数部分为循环小数,则将循环的部分括在括号内。示例 :输入: numerator = 1, denominator = 2,输出: "0.5"输入: numerator = 2, denominator = 1,输出: "2"输入: numerator = 2,...原创 2019-10-28 19:03:42 · 605 阅读 · 0 评论 -
(Leetcode) 岛屿数量 - Python实现
题目:岛屿数量给定一个由 '1'(陆地)和 '0'(水)组成的的二维网格,计算岛屿的数量。一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的。你可以假设网格的四个边均被水包围。示例 :输入: 输出: 111110110101100000000----------------------------------------------------...原创 2019-10-22 16:22:00 · 1376 阅读 · 0 评论 -
(Leetcode) 单词接龙 - Python实现
题目:单词接龙给定两个单词(beginWord 和 endWord)和一个字典,找到从 beginWord 到 endWord 的最短转换序列的长度。转换需遵循如下规:每次转换只能改变一个字母。转换过程中的中间单词必须是字典中的单词。说明:如果不存在这样的转换序列,返回 0。 所有单词具有相同的长度。 所有单词只由小写字母组成。 字典中不存在重复的单词。 你可以假设 beginWo...原创 2019-10-21 15:15:50 · 1219 阅读 · 0 评论 -
(Leetcode) 矩阵中的最长递增路径 - Python实现
题目:零钱兑换给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。示例 :输入: coins = [1, 2, 5], amount = 11,输出: 3解释: 11 = 5 + 5 + 1输入: coins = [2], amount = 3,输出: -1说明:你可以认为每...原创 2019-10-17 20:09:34 · 1180 阅读 · 0 评论 -
(Leetcode) 位1的个数 - Python实现
题目:零钱兑换给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。示例 :输入: coins = [1, 2, 5], amount = 11,输出: 3解释: 11 = 5 + 5 + 1输入: coins = [2], amount = 3,输出: -1说明:你可以认为...原创 2019-10-16 13:43:08 · 158 阅读 · 0 评论 -
(Leetcode) 最长上升子序列 - Python实现
题目:最长上升子序列给定一个无序的整数数组,找到其中最长上升子序列的长度。示例:输入: [10,9,2,5,3,7,101,18],输出: 4解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。说明:可能会有多种最长上升子序列的组合,你只需要输出对应的长度即可。你算法的时间复杂度应该为 O(n2) 。进阶: 你能将算法的时间复杂度降低到 O(n log n) 吗?...原创 2019-10-16 10:34:11 · 891 阅读 · 0 评论 -
(Leetcode) 完全平方数 - Python实现
题目:完全平方数给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, ...)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。示例:输入: n = 12,输出: 3解释: 12 = 4 + 4 + 4.输入: n = 13,输出: 2解释: 13 = 4 + 9.----------------------------------------------...原创 2019-10-14 17:40:24 · 1122 阅读 · 0 评论 -
(Leetcode) 最长连续序列 - Python实现
题目:最长连续序列给定一个未排序的整数数组,找出最长连续序列的长度。要求算法的时间复杂度为 O(n)。示例:输入: [100, 4, 200, 1, 3, 2],输出: 4解释: 最长连续序列是 [1, 2, 3, 4]。它的长度为 4。---------------------------------------------------------------------------...原创 2019-10-12 17:59:18 · 2356 阅读 · 0 评论 -
(Leetcode) 二叉树中的最大路径和 - Python实现
题目:二叉树中的最大路径和给定一个非空二叉树,返回其最大路径和。本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。-----------------------------------------------------------------------------------------------解法1#:创建递归函数,实...原创 2019-10-12 11:56:47 · 834 阅读 · 0 评论 -
(Leetcode) 数组中的第K个最大元素 - Python实现
题目:数组中的第K个最大元素在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 :输入: [3,2,1,5,6,4] 和 k = 2,输出: 5输入: [3,2,3,1,2,4,5,5,6] 和 k = 4,输出: 4说明:你可以假设 k 总是有效的,且 1 ≤ k ≤ 数组的长度。-------------...原创 2019-09-05 10:15:43 · 533 阅读 · 0 评论 -
(Leetcode) 数据流的中位数 - Python实现
题目:数据流的中位数中位数是有序列表中间的数。如果列表长度是偶数,中位数则是中间两个数的平均值。例如,[2,3,4] 的中位数是 3, [2,3] 的中位数是 (2 + 3) / 2 = 2.5设计一个支持以下两种操作的数据结构:void addNum(int num) - 从数据流中添加一个整数到数据结构中。double findMedian() - 返回目前所有元素的中位数。示例:...原创 2019-09-06 10:20:07 · 353 阅读 · 1 评论 -
(Leetcode) 有序矩阵中第K小的元素 - Python实现
题目:有序矩阵中第K小的元素给定一个 n x n 矩阵,其中每行和每列元素均按升序排序,找到矩阵中第k小的元素。请注意,它是排序后的第k小元素,而不是第k个元素。示例:matrix = [ [ 1, 5, 9], [10, 11, 13], [12, 13, 15]],k = 8, 返回 13。说明:你可以假设 k 的值永远是有效的, 1 ≤ k ≤ n2 。...原创 2019-09-11 10:40:03 · 453 阅读 · 0 评论 -
(Leetcode) 前 K 个高频元素 - Python实现
题目:前 K 个高频元素给定一个非空的整数数组,返回其中出现频率前 k 高的元素。示例:输入: nums = [1,1,1,2,2,3], k = 2。输出: [1,2]输入: nums = [1], k = 1。输出: [1]说明:你可以假设给定的 k 总是合理的,且 1 ≤ k ≤ 数组中不相同的元素的个数。你的算法的时间复杂度必须优于 O(n log n) , n 是数组的大小。...原创 2019-09-16 11:21:03 · 973 阅读 · 2 评论 -
(Leetcode) 四数相加 II- Python实现
题目:四数相加 II给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0。为了使问题简单化,所有的 A, B, C, D 具有相同的长度 N,且 0 ≤ N ≤ 500 。所有整数的范围在 -228 到 228 - 1 之间,最终结果不会超过 231 - 1 。例如:输入:A...原创 2019-09-24 19:17:53 · 338 阅读 · 0 评论 -
(Leetcode) 除自身以外数组的乘积 - Python实现
题目:除自身以外数组的乘积给定长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。示例:输入: [1,2,3,4],输出: [24,12,8,6]说明: 请不要使用除法,且在 O(n) 时间复杂度内完成此题。进阶:你可以在常数空间复杂度内完成这个题目吗?( 出于对空间复杂...原创 2019-09-04 12:01:01 · 169 阅读 · 0 评论 -
(Leetcode) 递增的三元子序列 - Python实现
题目:递增的三元子序列给定一个未排序的数组,判断这个数组中是否存在长度为 3 的递增子序列。数学表达式如下:如果存在这样的 i, j, k, 且满足 0 ≤ i < j < k ≤ n-1,使得 arr[i] < arr[j] < arr[k] ,返回 true ; 否则返回 false 。说明: 要求算法的时间复杂度为 O(n),空间复杂度为 O(1) 。示例...原创 2019-09-03 09:55:36 · 279 阅读 · 0 评论 -
(Leetcode) 求众数- Python实现
题目:求众数给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在众数。示例 :输入: [3,2,3],输出: 3输入: [2,2,1,1,1,2,2],输出: 2-------------------------------------------------------------------...原创 2019-09-02 09:39:11 · 199 阅读 · 0 评论 -
(Leetcode) 乘积最大子序列 - Python实现
题目:乘积最大子序列给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数)。示例 :输入: [2,3,-2,4],输出: 6解释: 子数组 [2,3] 有最大乘积 6。输入: [-2,0,-1],输出: 0解释: 结果不能为 2, 因为 [-2,-1] 不是子数组。-------------------------------------------...原创 2019-08-15 11:03:35 · 665 阅读 · 0 评论 -
(Leetcode) 单词搜索 II - Python实现
题目:单词搜索 II给定一个二维网格 board 和一个字典中的单词列表 words,找出所有同时在二维网格和字典中出现的单词。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母在一个单词中不允许被重复使用。说明 :你可以假设所有输入都由小写字母 a-z 组成。提示 :你需要优化回溯算法以通过更大数据量的测试...原创 2019-08-07 15:31:19 · 684 阅读 · 0 评论 -
(Leetcode) 打乱数组 - Python实现
题目:打乱数组打乱一个没有重复元素的数组。示例:// 以数字集合 1, 2 和 3 初始化数组。int[] nums = {1,2,3};Solution solution = new Solution(nums);// 打乱数组 [1,2,3] 并返回结果。任何 [1,2,3]的排列返回的概率应该相同。solution.shuffle();// 重设数组到它的初始状态[1,2,3]...原创 2019-08-09 10:36:26 · 731 阅读 · 0 评论 -
(Leetcode) 两个数组的交集 II - Python实现
题目:两个数组的交集 II给定两个数组,编写一个函数来计算它们的交集。示例 :输入: nums1 = [1,2,2,1], nums2 = [2,2],输出: [2,2]输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4],输出: [4,9]说明:输出结果中每个元素出现的次数,应与元素在两个数组中出现的次数一致。我们可以不考虑输出结果的顺序。进阶:如果给定的...原创 2019-08-13 13:38:14 · 270 阅读 · 0 评论 -
(Leetcode) 滑动窗口最大值 - Python实现
题目:滑动窗口最大值给定一个数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值。示例:输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3。输出: [3,3,5,5,6,7]解释:滑动窗口的位置 最大值---------------...原创 2019-09-17 11:18:57 · 1183 阅读 · 0 评论 -
(Leetcode) 基本计算器 II - Python实现
题目:基本计算器 II实现一个基本的计算器来计算一个简单的字符串表达式的值。字符串表达式仅包含非负整数,+, - ,*,/ 四种运算符和空格 。 整数除法仅保留整数部分。示例 :输入: "3+2*2",输出: 7输入: " 3/2 ",输出: 1输入: " 3+5 / 2 ",输出: 5说明:你可以假设所给定的表达式都是有效的。请不要使用内置的库函数 eval。--------...原创 2019-09-18 14:28:39 · 733 阅读 · 0 评论 -
(Leetcode) 扁平化嵌套列表迭代器 - Python实现
题目:扁平化嵌套列表迭代器给定一个嵌套的整型列表。设计一个迭代器,使其能够遍历这个整型列表中的所有整数。列表中的项或者为一个整数,或者是另一个列表。示例:输入: [[1,1],2,[1,1]],输出: [1,1,2,1,1]解释: 通过重复调用 next 直到 hasNext 返回false,next 返回的元素的顺序应该是: [1,1,2,1,1]。输入: [1,[4,[6]]],输出...原创 2019-09-19 11:59:34 · 463 阅读 · 0 评论 -
(Leetcode) 有效的括号 - Python实现
题目:有效的括号: 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。示例: 输入: "()", 输出: true 输入: "()[]{}", 输出: true 输入: "(]", 输...原创 2019-06-17 11:15:32 · 236 阅读 · 0 评论 -
(Leetcode) 至少有K个重复字符的最长子串- Python实现
题目:至少有K个重复字符的最长子串找到给定字符串(由小写字符组成)中的最长子串 T , 要求 T 中的每一字符出现次数都不少于 k 。输出 T 的长度。示例 :输入:s = "aaabb", k = 3,输出:3最长子串为 "aaa" ,其中 'a' 重复了 3 次。输入: s = "ababbc", k = 2,输出: 5最长子串为 "ababb" ,其中 'a' 重复了 2 次, '...原创 2019-10-10 15:09:21 · 590 阅读 · 0 评论 -
(Leetcode) 打家劫舍 - Python实现
题目:打家劫舍你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。示例:输入: [1,2,3,1],输出: 4解释: 偷窃 1 号房屋 (金额 = 1) ,然后偷...原创 2019-10-09 13:09:17 · 153 阅读 · 0 评论 -
(Leetcode) 计算右侧小于当前元素的个数 - Python实现
题目:计算右侧小于当前元素的个数给定一个整数数组 nums,按要求返回一个新数组 counts。数组 counts 有该性质: counts[i] 的值是 nums[i] 右侧小于 nums[i] 的元素的数量。示例:输入: [5,2,6,1],输出: [2,1,1,0]解释:5 的右侧有 2 个更小的元素 (2 和 1).2 的右侧仅有 1 个更小的元素 (1).6 的右侧有 1...原创 2019-10-08 16:51:19 · 335 阅读 · 0 评论 -
(Leetcode) 寻找重复数 - Python实现
题目:寻找重复数给定一个包含 n + 1 个整数的数组 nums,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数。假设只有一个重复的整数,找出这个重复的数。示例:输入: [1,3,4,2,2],输出: 2输入: [3,1,3,4,2],输出: 3说明:不能更改原数组(假设数组是只读的)。只能使用额外的 O(1) 的空间。时间复杂度小于 O(n2) 。数组...原创 2019-09-30 10:38:09 · 270 阅读 · 0 评论 -
(Leetcode) 寻找峰值 - Python实现
题目:寻找峰值峰值元素是指其值大于左右相邻值的元素。给定一个输入数组 nums,其中 nums[i] ≠ nums[i+1],找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回任何一个峰值所在位置即可。你可以假设 nums[-1] = nums[n] = -∞。示例:输入: nums = [1,2,3,1],输出: 2解释: 3 是峰值元素,你的函数应该返回其索引 2。...原创 2019-09-29 11:11:58 · 3446 阅读 · 1 评论 -
(Leetcode) 摆动排序 II - Python实现
题目:摆动排序 II给定一个无序的数组 nums,将它重新排列成 nums[0] < nums[1] > nums[2] < nums[3]... 的顺序。示例 :输入: nums = [1, 5, 1, 1, 6, 4],输出: 一个可能的答案是 [1, 4, 1, 5, 1, 6]输入: nums = [1, 3, 2, 2, 3, 1],输出: 一个可能的答案是 [2...原创 2019-09-27 15:49:50 · 272 阅读 · 0 评论 -
(Leetcode) 最大数- Python实现
题目:最大数给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数。示例 :输入: [10,2],输出: 210输入: [3,30,34,5,9],输出: 9534330说明: 输出结果可能非常大,所以你需要返回一个字符串而不是整数。---------------------------------------------------------------------------...原创 2019-09-26 11:36:07 · 1305 阅读 · 0 评论 -
(Leetcode) 常数时间插入、删除和获取随机元素 - Python实现
题目:常数时间插入、删除和获取随机元素设计一个支持在平均 时间复杂度 O(1) 下,执行以下操作的数据结构。insert(val):当元素 val 不存在时,向集合中插入该项。remove(val):元素 val 存在时,从集合中移除该项。getRandom:随机返回现有集合中的一项。每个元素应该有相同的概率被返回。示例 :// 初始化一个空的集合。RandomizedSet rand...原创 2019-09-25 16:35:26 · 367 阅读 · 0 评论 -
(Leetcode) Excel表列序号 - Python实现
题目:Excel表列序号给定一个Excel表格中的列名称,返回其相应的列序号。例如, A -> 1 B -> 2 C -> 3 ... Z -> 26 AA -> 27 AB -> 28 ZY -> 701 AAA -> 703-----------------------...原创 2019-09-23 18:32:38 · 477 阅读 · 0 评论 -
(Leetcode) 逆波兰表达式求值 - Python实现
题目:逆波兰表达式求值根据逆波兰表示法,求表达式的值。有效的运算符包括 +, -, *, / 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。说明:整数除法只保留整数部分。给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。示例 :输入: ["10", "6", "9", "3", "+", "-11", "*", "/", "*", "17"...原创 2019-09-20 15:19:57 · 333 阅读 · 0 评论 -
(Leetcode) 实现 Trie (前缀树) - Python实现
题目:实现一个 Trie (前缀树),包含 insert, search, 和 startsWith 这三个操作。示例:Trie trie = new Trie();trie.insert("apple");trie.search("apple"); // 返回 truetrie.search("app"); // 返回 falsetrie.startsWith("app")...原创 2019-08-02 13:22:12 · 1334 阅读 · 0 评论 -
(Leetcode) 移动零 - Python实现
题目:移动零给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12],输出: [1,3,12,0,0]说明: 1. 必须在原数组上操作,不能拷贝额外的数组。 2. 尽量减少操作次数。---------------------------------------------------------------...原创 2019-08-08 10:52:24 · 257 阅读 · 0 评论 -
(Leetcode) 数组拆分 I - Python实现
题目:数组拆分 I给定长度为 2n 的数组, 你的任务是将这些数分成 n 对, 例如 (a1, b1), (a2, b2), ..., (an, bn) ,使得从1 到 n 的 min(ai, bi) 总和最大。示例 :输入: [1,4,3,2], 输出: 4解释: n 等于 2, 最大总和为 4 = min(1, 2) + min(3, 4).提示:n 是正整数,范围在 [1, ...原创 2019-06-28 10:35:41 · 303 阅读 · 0 评论 -
(Leetcode) 最大连续1的个数 - Python实现
题目:最大连续1的个数给定一个二进制数组, 计算其中最大连续1的个数。Given a binary array, find the maximum number of consecutive 1s in this array.示例 :输入: [1,1,0,1,1,1]输出: 3解释: 开头的两位和最后的三位都是连续1,所以最大连续1的个数是 3.注意:输入的数组只包含 0 和1。...原创 2019-07-03 10:40:19 · 1336 阅读 · 1 评论 -
(Leetcode) 二进制求和 - Python实现
题目:二进制求和给定两个二进制字符串,返回他们的和(用二进制表示)。输入为非空字符串且只包含数字 1 和 0。Given two binary strings, return their sum (also a binary string).The input strings are both non-empty and contains only characters 1 or 0....原创 2019-06-27 16:38:55 · 596 阅读 · 0 评论