leetcode
7yangyang
这个作者很懒,什么都没留下…
展开
-
[Python LeetCode]118. 杨辉三角(yangyang)
题目:1.临界时,元素值为12.一般情况下:triangle[i][j]=triangle[i-1][j-1]+triangle[i-1][j]class Solution: def generate(self, numRows: int) -> List[List[int]]: #一般情况下:num[i][j]=num[i-1][j-1]+num[i-1]...原创 2019-06-21 21:43:44 · 153 阅读 · 0 评论 -
[Python LeetCode]237. 删除链表中的节点(yangyang)
题目:请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。现有一个链表 – head = [4,5,1,9],它可以表示为:示例 1:输入: head = [4,5,1,9], node = 5输出: [4,1,9]解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.示例 2:...原创 2019-05-09 22:29:11 · 101 阅读 · 0 评论 -
[Python LeetCode]235. 二叉搜索树的最近公共祖先(yangyang)
思路:这道题我们可以用递归来求解,我们首先来看题目中给的例子,由于二叉搜索树的特点是左<根<右,所以根节点的值一直都是中间值,大于左子树的所有节点值,小于右子树的所有节点值,那么我们可以做如下的判断,如果根节点的值大于p和q之间的较大值,说明p和q都在左子树中,那么此时我们就进入根节点的左子节点继续递归,如果根节点小于p和q之间的较小值,说明p和q都在右子树中,那么此时我们就进入根节...原创 2019-05-09 22:15:17 · 194 阅读 · 0 评论 -
[Python LeetCode]226. 翻转二叉树(yangyang)
题目:翻转一棵二叉树。示例:输入: 4 / \ 2 7 / \ / \1 3 6 9输出: 4 / \ 7 2 / \ / \9 6 3 1备注:这个问题是受到 Max Howell 的 原问题 启发的 :谷歌:我们90%的工程师使用您编写的软件(Homebrew),但是您却无法在...原创 2019-05-09 21:57:33 · 138 阅读 · 0 评论 -
[Python LeetCode]204. 计数质数(yangyang)
题目:统计所有小于非负整数 n 的质数的数量。示例:输入: 10输出: 4解释: 小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。思路:采用埃拉托色尼筛选法,这个算法的过程如下图所示,我们从2开始遍历到根号n,先找到第一个质数2,然后将其所有的倍数全部标记出来,然后到下一个质数3,标记其所有倍数,一次类推,直到根号n,此时数组中未被标记的数字就是质数。我们需要一...原创 2019-05-09 20:56:11 · 202 阅读 · 0 评论 -
[Python LeetCode] 205.同构字符串(yangyang)
题目:给定两个字符串 s 和 t,判断它们是否是同构的。如果 s 中的字符可以被替换得到 t ,那么这两个字符串是同构的。所有出现的字符都必须用另一个字符替换,同时保留字符的顺序。两个字符不能映射到同一个字符上,但字符可以映射自己本身。示例 1:输入: s = “egg”, t = “add”输出: true示例 2:输入: s = “foo”, t = “bar”输出: fal...转载 2019-05-06 21:10:25 · 216 阅读 · 0 评论 -
[Python LeetCode]141. 环形链表(yangyang)
题目:给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。示例 1:输入:head = [3,2,0,-4], pos = 1输出:true解释:链表中有一个环,其尾部连接到第二个节点。思路:1.因为链表只有一个前驱和一个后继,所以如果链表有环,则该环必然...原创 2019-05-13 21:50:05 · 111 阅读 · 0 评论 -
[Python LeetCode] 225. 用队列实现栈(yangyang)
题目:使用队列实现栈的下列操作:push(x) – 元素 x 入栈pop() – 移除栈顶元素top() – 获取栈顶元素empty() – 返回栈是否为空注意:你只能使用队列的基本操作-- 也就是 push to back, peek/pop from front, size, 和 is empty 这些操作是合法的。你所使用的语言也许不支持队列。 你可以使用 list 或者 d...原创 2019-05-08 23:12:24 · 206 阅读 · 1 评论 -
[Python LeetCode] 234. 回文链表(yangyang)
题目:请判断一个链表是否为回文链表。示例 1:输入: 1->2输出: false示例 2:输入: 1->2->2->1输出: true进阶:你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题?思路:回文链表反转前后肯定一致代码:# Definition for singly-linked list.# class ListNode:#...原创 2019-05-08 22:57:15 · 183 阅读 · 0 评论 -
[Python LeetCode] 232. 用栈实现队列(yangyang)
题目:使用栈实现队列的下列操作:push(x) – 将一个元素放入队列的尾部。pop() – 从队列首部移除元素。peek() – 返回队列首部的元素。empty() – 返回队列是否为空。示例:MyQueue queue = new MyQueue();queue.push(1);queue.push(2);queue.peek(); // 返回 1queue.pop()...原创 2019-05-08 22:34:22 · 402 阅读 · 0 评论 -
[Python LeetCode] 203.移除链表元素(yangyang)
题目:删除链表中等于给定值 val 的所有节点。示例:输入: 1->2->6->3->4->5->6, val = 6输出: 1->2->3->4->5思路:为了判断方便,循环条件为head.next,若当前节点的值==val,指针指向next.next,否则正常赋值。# Definition for singly-li...原创 2019-05-05 23:38:20 · 181 阅读 · 0 评论 -
[Python LeetCode]202. 快乐数(yangyang)
题目:编写一个算法来判断一个数是不是“快乐数”。一个“快乐数”定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是无限循环但始终变不到 1。如果可以变为 1,那么这个数就是快乐数。示例:输入: 19输出: true解释:12 + 92 = 8282 + 22 = 6862 + 82 = 10012 + 02 + 02...原创 2019-05-05 22:29:15 · 100 阅读 · 0 评论 -
[Python LeetCode]190. 颠倒二进制位(yangyang)
题目:颠倒给定的 32 位无符号整数的二进制位。示例 1:输入: 00000010100101000001111010011100输出: 00111001011110000010100101000000解释: 输入的二进制串 00000010100101000001111010011100 表示无符号整数 43261596,因此返回 964176192,其二进制表示形式为 0011100...原创 2019-04-24 21:57:03 · 174 阅读 · 0 评论 -
[Python LeetCode]175. 组合两个表(yangyang)
# Write your MySQL query statement belowSELECT FirstName, LastName, City, State FROM Person LEFT JOIN Address ON Person.PersonId = Address.PersonId;原创 2019-04-24 21:01:34 · 257 阅读 · 0 评论 -
[Python LeetCode]110_平衡二叉树(yangyang)
题目:给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。示例 1:给定二叉树 [3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7返回 true 。示例 2:给定二叉树 [1,2,2,3,3,null,null,4,4]...原创 2019-04-09 21:50:44 · 163 阅读 · 0 评论 -
[Python LeetCode] 242. 有效的字母异位词(yangyang)
题目:给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的一个字母异位词。示例 1:输入: s = “anagram”, t = “nagaram”输出: true示例 2:输入: s = “rat”, t = “car”输出: false说明:你可以假设字符串只包含小写字母。进阶:如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这种情...原创 2019-05-09 22:51:51 · 86 阅读 · 0 评论 -
[Python LeetCode] 217.存在重复元素(yangyang)
题目:给定一个整数数组,判断是否存在重复元素。如果任何值在数组中出现至少两次,函数返回 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]输出: true思路:建立数组存储查找即可cla...原创 2019-05-07 22:19:21 · 118 阅读 · 0 评论 -
[Python LeetCode]219. 存在重复元素 II(yangyang)
题目:给定一个整数数组和一个整数 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 = [1,2,3,1,...原创 2019-05-07 22:39:58 · 275 阅读 · 0 评论 -
[Python LeetCode]383. 赎金信(yangyang)
题目:给定一个赎金信 (ransom) 字符串和一个杂志(magazine)字符串,判断第一个字符串ransom能不能由第二个字符串magazines里面的字符构成。如果可以构成,返回 true ;否则返回 false。(题目说明:为了不暴露赎金信字迹,要从杂志上搜索各个需要的字母,组成单词来表达意思。)注意:你可以假设两个字符串均只含有小写字母。canConstruct(“a”, “b...原创 2019-05-27 23:08:26 · 98 阅读 · 0 评论 -
[Python LeetCode]374. 猜数字大小(yangyang)
思路:二分查找# The guess API is already defined for you.# @param num, your guess# @return -1 if my number is lower, 1 if my number is higher, otherwise return 0# def guess(num):class Solution(object)...原创 2019-05-27 22:47:37 · 121 阅读 · 0 评论 -
[Python LeetCode]367. 有效的完全平方数(yangyang)
题目:给定一个正整数 num,编写一个函数,如果 num 是一个完全平方数,则返回 True,否则返回 False。说明:不要使用任何内置的库函数,如 sqrt。示例 1:输入:16输出:True示例 2:输入:14输出:False思路:二分查找class Solution: def isPerfectSquare(self, num: int) -> boo...原创 2019-05-27 22:27:07 · 129 阅读 · 0 评论 -
[Python LeetCode]350. 两个数组的交集 II(yangyang)
题目:给定两个数组,编写一个函数来计算它们的交集。示例 1:输入: nums1 = [1,2,2,1], nums2 = [2,2]输出: [2,2]示例 2:输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出: [4,9]说明:输出结果中每个元素出现的次数,应与元素在两个数组中出现的次数一致。我们可以不考虑输出结果的顺序。进阶:如果给定的...原创 2019-05-27 21:27:31 · 126 阅读 · 0 评论 -
[Python LeetCode]349. 两个数组的交集(yangyang)
题目:给定两个数组,编写一个函数来计算它们的交集。示例 1:输入: nums1 = [1,2,2,1], nums2 = [2,2]输出: [2]示例 2:输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出: [9,4]说明:输出结果中的每个元素一定是唯一的。我们可以不考虑输出结果的顺序。class Solution(object): ...原创 2019-05-27 21:10:19 · 139 阅读 · 0 评论 -
[Python LeetCode]345. 反转字符串中的元音字母(yangyang)
题目:编写一个函数,以字符串作为输入,反转该字符串中的元音字母。示例 1:输入: “hello”输出: “holle”示例 2:输入: “leetcode”输出: “leotcede”说明:元音字母不包含字母"y"。思路1:将元音字母存到列表,遍历字符串,查找列表,存储元音字母索引和元音字母,反转字符串,利用索引赋值class Solution: def rever...原创 2019-05-27 20:51:29 · 405 阅读 · 0 评论 -
[Python LeetCode]257. 二叉树的所有路径(yangyang)
题目:给定一个二叉树,返回所有从根节点到叶子节点的路径。说明: 叶子节点是指没有子节点的节点。示例:输入: 1 / \2 3 \ 5输出: ["1->2->5", "1->3"]解释: 所有根节点到叶子节点的路径为: 1->2->5, 1->3思路:基本算法就是二叉树的遍历,首先想到的是深度优先遍历。难...原创 2019-05-22 21:41:58 · 434 阅读 · 0 评论 -
[Python LeetCode]283. 移动零(yangyang)
题目:给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。思路:找出所有的零,删除,extendclass Solution: def moveZeroes(self, nums: List[int...原创 2019-05-24 22:40:27 · 122 阅读 · 0 评论 -
[Python LeetCode]278. 第一个错误的版本(yangyang)
题目:你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。假设你有 n 个版本 [1, 2, …, n],你想找出导致之后所有版本出错的第一个错误的版本。你可以通过调用 bool isBadVersion(version) 接口来判断版本号 version 是否在单元测试中出...原创 2019-05-24 22:30:28 · 114 阅读 · 0 评论 -
[Python LeetCode]268. 缺失数字(yangyang)
题目:给定一个包含 0, 1, 2, …, n 中 n 个数的序列,找出 0 … n 中没有出现在序列中的那个数。示例 1:输入: [3,0,1]输出: 2示例 2:输入: [9,6,4,2,3,5,7,0,1]输出: 8说明:你的算法应具有线性时间复杂度。你能否仅使用额外常数空间来实现?思路:暴力查找class Solution: def missingNumber...原创 2019-05-24 22:06:49 · 134 阅读 · 0 评论 -
[Python LeetCode]70. 爬楼梯(yangyang)
题目:假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1 阶 + 1 阶2 阶示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。3. 1 阶 + 1 阶 + 1 阶4. 1 阶 + 2 阶...原创 2019-05-20 22:44:24 · 183 阅读 · 0 评论 -
[Python LeetCode]26. 删除排序数组中的重复项(yangyang)
题目:给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面的元素。示例 2:给定 n...原创 2019-05-20 22:17:29 · 307 阅读 · 0 评论 -
[Python LeetCode]53. 最大子序和(yangyang)
题目:给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。进阶:如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。代码(动态规划):class Solution(object):...原创 2019-05-20 22:04:56 · 146 阅读 · 0 评论 -
[Python LeetCode] 231. 2的幂(yangyang)
题目:给定一个整数,编写一个函数来判断它是否是 2 的幂次方。示例 1:输入: 1输出: true解释: 20 = 1示例 2:输入: 16输出: true解释: 24 = 16示例 3:输入: 218输出: false思路:2次幂的2进制表达中必然只有一位为1,其余位全部为0.如果将这个数减去1,则会出现原先二进制中1的1变为0,1之后的0变为1的情况。对这两个数按位相...原创 2019-05-07 23:11:13 · 119 阅读 · 0 评论 -
[Python LeetCode]108_将有序数组转换为二叉搜索树(yangyang)
题目:将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。示例:给定有序数组: [-10,-3,0,5,9],一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉搜索树: 0 / \ -3 9 / / -10...原创 2019-04-09 21:29:34 · 143 阅读 · 0 评论 -
[Python LeetCode]122. 买卖股票的最佳时机 II(yangyang)
题目:给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易...原创 2019-04-12 22:08:40 · 88 阅读 · 0 评论 -
[Python LeetCode]66_加一(yangyang)
题目:给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。示例 2:输入: [4,3,2,1]输出: [4,3,2,2]解释: 输入数组表示数字 4321。代码:...原创 2019-04-02 16:53:28 · 76 阅读 · 0 评论 -
[Python LeetCode]58_最后一个单词的长度(yangyang)
题目:给定一个仅包含大小写字母和空格 ’ ’ 的字符串,返回其最后一个单词的长度。如果不存在最后一个单词,请返回 0 。说明:一个单词是指由字母组成,但不包含任何空格的字符串。示例:输入: “Hello World”输出: 5代码:class Solution: def lengthOfLastWord(self, s: str) -> int: if ...原创 2019-04-02 16:38:08 · 85 阅读 · 0 评论 -
[Python LeetCode]53_最大子序和(yangyang)
题目:给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。进阶:如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。代码:class Solution: def maxSub...原创 2019-04-02 16:27:58 · 117 阅读 · 1 评论 -
[Python LeetCode]35_搜索插入位置(yangyang)
题目:给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例 2:输入: [1,3,5,6], 2输出: 1示例 3:输入: [1,3,5,6], 7输出: 4示例 4:输入: [1,3,5,6], 0输出: 0代码:c...原创 2019-04-02 16:19:24 · 81 阅读 · 0 评论 -
[Python LeetCode]28_ 实现strStr()(yangyang)
题目:实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1:输入: haystack = “hello”, needle = “ll”输出: 2示例 2:输入: haystack = “aaaaa”, needle = “...原创 2019-04-02 16:07:25 · 83 阅读 · 0 评论 -
[Python LeetCode]7_整数反转(yangyang)
题目:给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。class Solutio...原创 2019-04-01 23:42:49 · 317 阅读 · 0 评论