LeetCode
Leon0204
这个作者很懒,什么都没留下…
展开
-
56. 合并区间 python3
给出一个区间的集合,请合并所有重叠的区间。示例 1:输入: [[1,3],[2,6],[8,10],[15,18]]输出: [[1,6],[8,10],[15,18]]解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].示例 2:输入: [[1,4],[4,5]]输出: [[1,5]]解释: 区间 [1,4] 和 [4,5] 可被视为重叠区间。c...原创 2019-12-03 14:14:52 · 329 阅读 · 0 评论 -
LeetCode 50. Pow(x, n) Python3
实现 pow(x, n) ,即计算 x 的 n 次幂函数。示例 1:输入: 2.00000, 10输出: 1024.00000示例 2:输入: 2.10000, 3输出: 9.26100示例 3:输入: 2.00000, -2输出: 0.25000解释: 2-2 = 1/22 = 1/4 = 0.25说明:-100.0 < x < 100.0n 是 3...原创 2019-01-07 17:42:50 · 489 阅读 · 0 评论 -
LeetCode 169. 求众数
169. 求众数给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在众数。示例 1:输入: [3,2,3]输出: 3示例 2:输入: [2,2,1,1,1,2,2]输出: 2解题:由于题目 给定数组是非空的,并且给定的数组总是存在众数。 所以无需考虑众数不存在的情况,也不需要考...原创 2019-01-08 10:22:17 · 370 阅读 · 0 评论 -
20. 有效的括号
给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例 2:输入: "()[]{}"输出: true示例 3:输入: "(]"输出: false示例 4:输..原创 2019-01-14 15:32:54 · 152 阅读 · 0 评论 -
LeetCode22. 括号生成(剪枝)
题目描述给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。例如,给出 n = 3,生成结果为:[ "((()))", "(()())", "(())()", "()(())", "()()()&原创 2019-01-15 11:17:30 · 259 阅读 · 0 评论 -
191. 位1的个数
题目描述编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。示例 1:输入:00000000000000000000000000001011输出:3解释:输入的二进制串 00000000000000000000000000001011 中,共有三位为 '1'。示例 2:输入:000000000000000000000000100...原创 2019-12-09 09:07:18 · 220 阅读 · 0 评论 -
231. 2的幂
给定一个整数,编写一个函数来判断它是否是 2 的幂次方。示例 1:输入: 1输出: true解释: 20 = 1示例 2:输入: 16输出: true解释: 24 = 16示例 3:输入: 218输出: false解法 # 1. 取模 if n ==1 : return True while T...原创 2019-01-28 16:17:49 · 164 阅读 · 0 评论 -
338. 比特位计数
题目描述给定一个非负整数 num。对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回。示例 1:输入: 2输出: [0,1,1]示例 2:输入: 5输出: [0,1,1,2,1,2]进阶:给出时间复杂度为O(n*sizeof(integer))的解答非常容易。但你可以在线性时间O(n)内用一趟扫描做到吗?要求算法的空...原创 2019-01-28 18:36:43 · 218 阅读 · 0 评论 -
Leetcode 260. 只出现一次的数字 III -详解
题目给定一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。示例 :输入: [1,2,1,3,2,5]输出: [3,5]注意:结果输出的顺序并不重要,对于上面的例子, [5, 3] 也是正确答案。你的算法应该具有线性时间复杂度。你能否仅使用常数空间复杂度来实现?解法1老样子,先来一种简单的办法,新开1个dict、1个...原创 2019-02-15 11:03:34 · 302 阅读 · 1 评论 -
51. N皇后 I
题目描述n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。给定一个整数 n,返回所有不同的 n 皇后问题的解决方案。每一种解法包含一个明确的 n 皇后问题的棋子放置方案,该方案中 'Q' 和 '.' 分别代表了皇后和空位。示例:输入: 4输出: [ [".Q..", // 解法 1 "...Q", "Q.原创 2019-01-29 16:48:01 · 203 阅读 · 0 评论 -
leetcode 645. 错误的集合
题目描述集合 S 包含从1到 n 的整数。不幸的是,因为数据错误,导致集合里面某一个元素复制了成了集合里面的另外一个元素的值,导致集合丢失了一个整数并且有一个元素重复。给定一个数组 nums 代表了集合 S 发生错误后的结果。你的任务是首先寻找到重复出现的整数,再找到丢失的整数,将它们以数组的形式返回。示例 1:输入: nums = [1,2,2,4]输出: [2,3]注意:给定数组...原创 2019-02-12 15:22:37 · 650 阅读 · 0 评论 -
28. 实现strStr()
题目描述实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1:输入: haystack = “hello”, needle = “ll”输出: 2示例 2:输入: haystack = “aaaaa”, needle =...原创 2019-02-12 17:33:53 · 115 阅读 · 0 评论 -
LeetCode .120. 三角形最小路径和 - 详解
题目描述给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。例如,给定三角形:[ [2], [3,4], [6,5,7], [4,1,8,3]]自顶向下的最小路径和为 11(即,2 + 3 + 5 + 1 = 11)。说明:如果你可以只使用 O(n) 的额外空间(n 为三角形的总行数)来解决这个问题,那么你的算法会很加分...原创 2019-02-19 11:13:24 · 283 阅读 · 0 评论 -
LeetCode .146. LRU缓存机制-详解
problem运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put 。获取数据 get(key) - 如果密钥 (key) 存在于缓存中,则获取密钥的值(总是正数),否则返回 -1。写入数据 put(key, value) - 如果密钥不存在,则写入其数据值。当缓存容量达到上限时,它应该在写入新数据之前删...原创 2019-02-25 13:13:21 · 621 阅读 · 0 评论 -
137. 只出现一次的数字 II -详解
题目描述给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现了三次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,3,2]输出: 3示例 2:输入: [0,1,0,1,0,1,99]输出: 99解法1既然是3n+1 的思路,用 set 去重之后,*3 减去 不去重直接s...原创 2019-02-14 14:45:36 · 921 阅读 · 0 评论 -
LeetCode 74. 搜索二维矩阵
AC1AC1总是最暴力的 O(n2)class Solution: def searchMatrix(self, matrix, target): for i in matrix: for j in i: if j == target: return True ...原创 2019-03-04 16:43:51 · 281 阅读 · 0 评论 -
leetcode 7. 整数反转 python3
题目描述给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123输出: 321 示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。Sol...原创 2019-03-28 08:44:57 · 342 阅读 · 0 评论 -
LeetCode 13. 罗马数字转整数
题目:https://leetcode-cn.com/problems/roman-to-integer/AC1class Solution(object): def romanToInt(self, s): """ :type s: str :rtype: int """ dict = { ...原创 2019-05-29 20:35:32 · 152 阅读 · 0 评论 -
LeetCode 69. x 的平方根
x 的平方根题目实现 int sqrt(int x) 函数。计算并返回 x 的平方根,其中 x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。示例 1:输入: 4输出: 2示例 2:输入: 8输出: 2说明: 8 的平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。解法二分法,求到 left-r...原创 2019-01-17 15:47:51 · 117 阅读 · 0 评论 -
102. 二叉树的层次遍历
二叉树的层次遍历题目描述给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。例如:给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层次遍历结果:[ [3], [9,20], [15,7]]典型的 BFSPython3class ...原创 2019-01-10 18:36:31 · 265 阅读 · 0 评论 -
104. 二叉树的最大深度
104. 二叉树的最大深度JAVA版本/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */clas...原创 2018-09-28 10:52:54 · 375 阅读 · 0 评论 -
136. 只出现一次的数字
136. 只出现一次的数字利用异或class Solution { public int singleNumber(int[] nums) { int c = 0; for (int i = 0; i < nums.length; i++) { c = c ^ nums[i]; } return c; }}...原创 2018-09-28 11:51:12 · 337 阅读 · 0 评论 -
237删除链表中的节点
237删除链表中的节点题目请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。现有一个链表 – head = [4,5,1,9],它可以表示为:4 -> 5 -> 1 -> 9说明:链表至少包含两个节点。链表中所有节点的值都是唯一的。给定的节点为非末尾节点并且一定是链表中的一个有效节点。不要从你的函数中返回任何结果。思路...原创 2018-09-29 09:48:54 · 326 阅读 · 0 评论 -
557. 反转字符串中的单词 III
557. 反转字符串中的单词 III题目给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。输入: "Let's take LeetCode contest"输出: "s'teL ekat edoCteeL tsetnoc" 在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。思路将字符串用空格分割,翻转字符串,再用空格拼接,再去...原创 2018-09-29 10:46:15 · 296 阅读 · 0 评论 -
235. 二叉搜索树的最近公共祖先
235. 二叉搜索树的最近公共祖先####题目给定如下二叉搜索树: root = [6,2,8,0,4,7,9,null,null,3,5] _______6______ / \ ___2__ ___8__ / \ / \ 0 _4 7 ...原创 2018-09-29 11:15:28 · 443 阅读 · 0 评论 -
70. 爬楼梯 python3 四种解法
假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1 阶 + 1 阶2 阶示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1 阶 + 1 阶 + 1 阶1 阶 + 2 阶2 阶 + 1 阶...原创 2018-10-15 10:28:14 · 557 阅读 · 0 评论 -
215. 数组中的第K个最大元素
在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 4你可以假设 k 总是有效的,且 1 ≤ k ≤ 数组的长度。python3 解法两行代码搞定class Solution: def findKthLargest(self, nums,...原创 2018-10-10 11:25:04 · 570 阅读 · 0 评论 -
146. LRU缓存机制
运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put 。获取数据 get(key) - 如果密钥 (key) 存在于缓存中,则获取密钥的值(总是正数),否则返回 -1。写入数据 put(key, value) - 如果密钥不存在,则写入其数据值。当缓存容量达到上限时,它应该在写入新数据之前删除最近最少使用的数...原创 2018-10-25 18:15:59 · 422 阅读 · 0 评论 -
709. 转换成小写字母
实现函数 ToLowerCase(),该函数接收一个字符串参数 str,并将该字符串中的大写字母转换成小写字母,之后返回新的字符串定义一个 大写字母和小写字母的dict ,遍历str 替换字符,时间复杂度为O(n*1) = O(n)pythonclass Solution(object): def toLowerCase(self, str): """ ...原创 2018-10-24 09:44:47 · 223 阅读 · 0 评论 -
905. 按奇偶校验排序数组
给出一个数组,把偶数排前面,奇数放后面,顺序无所谓输入:[3,1,2,4]输出:[2,4,3,1]输出 [4,2,3,1],[2,4,1,3] 和 [4,2,1,3] 也会被接受。pythonclass Solution(object): def sortArrayByParity(self, A): """ :type A: List[int]...原创 2018-10-24 10:29:33 · 195 阅读 · 0 评论 -
617. 合并二叉树
给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。pythonclass Solution(object): def mergeTrees(self, t1, t2): if t...原创 2018-10-24 11:33:15 · 453 阅读 · 0 评论 -
657. 机器人能否返回原点
python机器人能否返回原点124 msclass Solution(object): def judgeCircle(self, moves): """ :type moves: str :rtype: bool """ x = 0 y = 0 for i in m...原创 2018-10-24 11:36:27 · 514 阅读 · 0 评论 -
220. 存在重复元素 III
给定一个整数数组,判断数组中是否有两个不同的索引 i 和 j,使得 nums [i] 和 nums [j] 的差的绝对值最大为 t,并且 i 和 j 之间的差的绝对值最大为 ķ。示例 1:输入: nums = [1,2,3,1], k = 3, t = 0输出: true示例 2:输入: nums = [1,0,1,1], k = 1, t = 2输出: true示例 3:输入: ...原创 2018-11-20 14:37:21 · 319 阅读 · 0 评论 -
242. 有效的字母异位词
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的一个字母异位词。示例 1:输入: s = “anagram”, t = “nagaram”输出: true示例 2:输入: s = “rat”, t = “car”输出: false说明:你可以假设字符串只包含小写字母。进阶:如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这种情况?c...原创 2018-11-21 15:28:01 · 136 阅读 · 1 评论 -
219. 存在重复元素 II
219. 存在重复元素 II给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] = nums [j],并且 i 和 j 的差的绝对值最大为 k。示例 1:输入: nums = [1,2,3,1], k = 3输出: true示例 2:输入: nums = [1,0,1,1], k = 1输出: true示例 3:输入: nums ...原创 2018-11-20 11:29:42 · 206 阅读 · 0 评论 -
LeetCode 两数之和、三数之和
两数之和给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的 两个 整数。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]class Solution:...原创 2018-11-27 18:18:07 · 305 阅读 · 0 评论 -
LeetCode122. 买卖股票的最佳时机 II
买卖股票的最佳时机 II题目描述给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天...原创 2019-01-10 16:04:00 · 233 阅读 · 0 评论 -
238. 除自身以外数组的乘积
给定长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。输入: [1,2,3,4]输出: [24,12,8,6]说明: 请不要使用除法,且在 O(n) 时间复杂度内完成此题。进阶:你可以在常数空间复杂度内完成这个题目吗?( 出于对空间复杂度分析的目的,输出数组不被视...原创 2018-10-11 14:15:50 · 485 阅读 · 0 评论