
LeetCode
SpongeB0bbb
这个作者很懒,什么都没留下…
展开
-
LeetCode第41题,关于Python交换机制的思考
LeetCode第41题,关于Python交换机制的思考题目描述题目描述给你一个未排序的整数数组,请你找出其中没有出现的最小的正整数。示例1:输入: [1,2,0]输出: 3示例2:输入: [3,4,-1,1]输出: 2示例3:输入: [7,8,9,11,12]输出: 1代码:class Solution: def firstMissingPositive(self, nums: List[int]) -> int: for i in range原创 2020-06-27 15:51:36 · 232 阅读 · 0 评论 -
LeetCode第448题找到所有数组中消失的数字(Python)
LeetCode第448题找到所有数组中消失的数字(Python)题目描述解题方法和思路创建一个标记数组利用原数组全部大于零的特性进行标记*题目描述给定一个范围在 1 ≤ a[i] ≤ n ( n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次。找到所有在 [1, n] 范围之间没有出现在数组中的数字。您能在不使用额外空间且时间复杂度为O(n)的情况下完成这...原创 2019-10-31 16:18:52 · 453 阅读 · 0 评论 -
LeetCode第538题把二叉搜索树转换为累加树(Python)
LeetCode第538题把二叉搜索树转换为累加树(Python)题目描述解题方法和思路中序遍历实现题目描述给定一个二叉搜索树(Binary Search Tree),把它转换成为累加树(Greater Tree),使得每个节点的值是原来的节点值加上所有大于它的节点值之和。示例1:输入: 二叉搜索树: 5 / \ ...原创 2019-10-25 22:18:18 · 431 阅读 · 0 评论 -
LeetCode第283题移动零(Python)
LeetCode第283题移动零(Python)题目描述解题方法和思路设定两个索引,交换元素题目描述给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例1:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。来源:力扣(LeetCode)链接:https:...原创 2019-10-25 19:58:54 · 384 阅读 · 0 评论 -
LeetCode第21题合并两个有序链表(Python)
LeetCode第21题合并两个有序链表(Python)题目描述解题方法和思路递归实现迭代*题目描述将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例1:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4来源:力扣(LeetCode)链接:https://l...原创 2019-10-25 19:10:19 · 288 阅读 · 0 评论 -
LeetCode第169题求众数(Python)
LeetCode第169题求众数(Python)题目描述解题方法和思路直接统计利用哈希表记录出现次数分治算法*Boyer-Moore 投票算法*题目描述给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊n/2⌋\lfloor n/2 \rfloor⌊n/2⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在众数。示例1:输入: [3,2,3]输出: 3...原创 2019-10-23 10:35:00 · 1098 阅读 · 0 评论 -
LeetCode第136题只出现一次的数字(Python)
LeetCode第136题只出现一次的数字(Python)题目描述解题方法和思路利用异或操作进行运算利用字典进行哈希映射来查找去除重复元素题目描述给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例1:输入: [2,2,1]输出: 1示例2:输入: [4,...原创 2019-10-22 16:45:02 · 341 阅读 · 0 评论 -
LeetCode第206题反转链表(Python)
LeetCode第206题反转链表(Python)题目描述解题方法和思路定义游标用于反转(O(n)O(n)O(n))迭代题目描述反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL来源:力扣(LeetCode)链接:https://leetcode-cn.com...原创 2019-10-22 15:34:02 · 488 阅读 · 0 评论 -
LeetCode第104题二叉树的最大深度(Python)
LeetCode第104题二叉树的最大深度(Python)题目描述解题方法和思路递归迭代遍历节点题目描述给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7],输入: 3 / \ 9 20 / \ 15 7...原创 2019-10-22 10:57:02 · 286 阅读 · 0 评论 -
LeetCode第226题翻转二叉树(Python)
LeetCode第226题翻转二叉树(Python)题目描述解题方法和思路递归翻转题目描述翻转一棵二叉树。示例:输入: 4 / \ 2 7 / \ / \ 1 3 6 9输出: 合并后的树: 4 / \ 7 2 / \ / \ 9 6 3 ...原创 2019-10-22 09:52:30 · 304 阅读 · 0 评论 -
LeetCode第461题汉明距离(Python)
LeetCode第461题汉明距离(Python)题目描述解题方法和思路转化为二进制后比对即可利用异或运算题目描述两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。给出两个整数 x 和 y,计算它们之间的汉明距离。注意:0≤x,y<2310 ≤ x, y < 2^{31}0≤x,y<231.示例 1:输入: x = 1, y = 4输出: 2...原创 2019-10-20 14:07:20 · 492 阅读 · 0 评论 -
LeetCode第617题合并二叉树(Python)
LeetCode第617题合并二叉树(Python)题目描述解题方法和思路将树拆解为数组结构对应相加递归实现题目描述给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。示例 1:输入: Tr...原创 2019-10-19 16:48:47 · 348 阅读 · 0 评论 -
LeetCode第五题最长回文子串(Python)
LeetCode第五题最长回文子串(Python)题目描述解题方法和思路暴力循环(O(n3)O(n^3)O(n3))从中间开始向外扩展匹配(O(n2)O(n^2)O(n2))(自己做题时的实现)动态规划算法Manacher 算法题目描述给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: “babad”输出: “bab”注意: “a...原创 2019-10-18 14:57:58 · 374 阅读 · 0 评论 -
LeetCode第四题寻找两个有序数组的中位数(Python)
LeetCode第四题寻找两个有序数组的中位数(Python)题目描述解题方法和思路方法1(自己想到的菜鸡实现,时间复杂度o(m+n)o(m+n)o(m+n))方法2(LeetCode官方账号解答实现)题目描述给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。你可以假设 nums1 和...原创 2019-10-17 12:29:03 · 521 阅读 · 0 评论 -
LeetCode第三题无重复字符的最长子串(Python)
LeetCode第三题无重复字符的最长子串(Python)题目描述解题方法和思路暴力求解记录重复的字母的位置,进行优化滑动窗口题目描述给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例2:输入: “bbbbb”输出: 1解释: 因为无重复字符的...原创 2019-10-16 10:46:08 · 192 阅读 · 0 评论 -
LeetCode第二题两数相加(Python)
LeetCode第二题两数相加题目描述解题方法和思路题目描述给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> ...原创 2019-10-15 10:53:16 · 565 阅读 · 0 评论 -
LeetCode第一题两数之和(Python)
LeetCode第一题两数之和题目描述解题方法和思路暴力求解利用排序优化(自己做题时的实现)利用哈希列表优化题目描述给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。给定 nums = [2, 7, 11, 15], target = 9...原创 2019-10-14 23:35:39 · 169 阅读 · 0 评论