自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(54)
  • 收藏
  • 关注

原创 【LeetCode 1251】平均售价 (SQL)

一、题目Table: Prices+---------------+---------+| Column Name | Type |+---------------+---------+| product_id | int || start_date | date || end_date | date || price | int |+---------------+---------+(product_id...

2021-10-29 03:02:15 656

原创 【LeetCode 1241】每个帖子的评论数 (SQL)

一、题目表Submissions 结构如下:+---------------+----------+| 列名 | 类型 |+---------------+----------+| sub_id | int || parent_id | int |+---------------+----------+上表没有主键, 所以可能会出现重复的行。每行可以是一个帖子或对该帖子的评论。如果是帖子的话,parent_id ...

2021-10-29 02:39:14 320

原创 【LeetCode 1211】Length of Last Word(sql)

Given a stringsconsists of upper/lower-case alphabets and empty space characters' ', return the length of last word in the string.If the last word does not exist, return 0.Note:A word is

2021-10-29 02:13:42 134

原创 【LeetCode 1142】过去30天的用户活动 II (SQL)

在写这篇博客前,我并不知道bin()这个方法。所以在这里给和我一样不了解的人科普一下。bin()返回一个整数 int 或者长整数 long int 的二进制表示。

2021-10-29 01:48:40 218

原创 【LeetCode 11】盛最多水的容器(Python)

题目:给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为NULL 的节点将直接作为新二叉树的节点。示例1:输入: Tree 1 Tree 2 1 2 ...

2021-08-16 10:51:24 72

原创 【LeetCode 】除自身以外数组的乘积(python3)

一、题目给你一个长度为n的整数数组nums,其中n > 1,返回输出数组output,其中 output[i]等于nums中除nums[i]之外其余各元素的乘积。二、思路三、代码四、补充

2021-06-04 12:48:07 155

原创 【LeetCode 39】组合总数(python3)

一、题目给定一个无重复元素的数组candidates和一个目标数target,找出candidates中所有可以使数字和为target的组合。candidates中的数字可以无限制重复被选取。说明:所有数字(包括target)都是正整数。解集不能包含重复的组合。示例1:输入:candidates = [2,3,6,7], target = 7,所求解集为:[ [7], [2,2,3]]来源:力扣(LeetCode)链接:https://le...

2021-06-03 12:56:08 324

原创 【LeetCode 48】旋转图像(python3)

一、题目给定一个 n×n 的二维矩阵matrix 表示一个图像。请你将图像顺时针旋转 90 度。你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/rotate-image著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。二、思路三、代码四、补充...

2021-06-03 11:34:30 182

原创 【LeetCode 406】Queue Reconstruction by Height(python3)

一、题目(就像是绕口令,根本看不懂)You are given an array of people, people, which are the attributes of some people in a queue (not necessarily in order). Each people[i] = [hi, ki] represents the ith person of height hi with exactly ki other people in front who have a he

2021-06-02 14:51:34 97

原创 【LeetCode 114】二叉树展开为链表(Python)

1 / \ 2 5 / \ \3 4 6

2020-08-05 23:55:16 394

原创 【LeetCode 94】二叉树的中序遍历(Python)

一、题目给定一个二叉树,返回它的中序遍历。示例:输入: [1,null,2,3]输出: [1,3,2]进阶: 递归算法很简单,你可以通过迭代算法完成吗?二、代码1.递归。很简单,不多做说明了。# Definition for a binary tree node.# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.rig

2020-08-05 19:34:03 277

原创 【LeetCode 338】比特位计数(Python)

一、题目给定一个非负整数 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)内用一趟扫描做到吗?要求算法的空间复杂度为O(n)。你能进一步完善解法吗?要求在C++或任何其他语言中不使用任何内置函数(如 C++ 中的 __bu

2020-08-04 18:27:22 297

原创 【LeetCode 22】括号生成(Python)

一、题目数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。示例:输入:n = 3输出:["((()))","(()())","(())()","()(())","()()()"]二、思路和前两道题一样,用回溯做最简单,也好理解。因为题目类型和前两道题类似,所以就不多做说明了。三、代码class Solution: def generateParenthesis(self, n: int) -> List[str]: a

2020-08-03 15:59:01 248

原创 ***【LeetCode 46】全排列(Python)

一、题目给定一个 没有重复 数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]二、思路DFS(深度优先搜索)+回溯:难点在于对回溯的理解与运用。很多类似的题都可以使用回溯的通用解法,下面的代码展示的也是通用解法。至于理解,建议大家去看一下这个文章(超强gif助你理解使用“4种”方法求解本题),里面的动图很好的解释了这种方法。这种方法由于常见,常用,所以即使理解

2020-07-30 18:48:00 222

原创 【LeetCode 78】子集(Python)

一、题目给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例:输入: nums = [1,2,3]输出:[[3],[1],[2],[1,2,3],[1,3],[2,3],[1,2],[]]二、代码(递归)class Solution: def subsets(self, nums: List[int]) -> List[List[int]]: res=[[]] for n

2020-07-29 23:24:41 192

原创 【LeetCode 581】最短无序连续子数组(Python)

一、题目给定一个整数数组,你需要寻找一个连续的子数组,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。你找到的子数组应是最短的,请输出它的长度。示例 1:输入: [2, 6, 4, 8, 10, 9, 15]输出: 5解释: 你只需要对 [6, 4, 8, 10, 9] 进行升序排序,那么整个表都会变为升序排序。说明 :输入的数组长度范围在 [1, 10,000]。输入的数组可能包含重复元素 ,所以升序的意思是<=。二、解题思路1、排序对比:将数组按升序排序,然后与原

2020-07-28 19:21:54 319

原创 【LeetCode 234】回文链表(Python)

一、题目请判断一个链表是否为回文链表。示例 1:输入: 1->2输出: false示例 2:输入: 1->2->2->1输出: true进阶:你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题?二、解题思路1.通过一个列表来储存单链表。因为python对列表的支持可以很容易得到倒序。所以可以直接通过正序和倒序来判断是否为回文。优点:思路清晰,简单。缺点:需要额外存储空间。2.针对官方解释的理解:因为回文的特点是可以从正中间截断,前后对称。那么从这个

2020-07-27 19:33:17 368

原创 ***【LeetCode 543】二叉树的直径(Python)

一、题目给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。示例 :给定二叉树 1 / \ 2 3 / \ 4 5 返回 3, 它的长度是路径 [4,2,1,3] 或者 [5,2,1,3]。注意:两结点之间的路径长度是以它们之间边的数目表示。二、解题思路  我刚拿到这个题时,想到的是遍历, 自底向上+中序遍历(左根右)。得到的就是全遍历,而不是最长路径

2020-07-22 18:25:45 183

原创 【LeetCode 198】打家劫舍(Python)

一、题目你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。示例 1:输入:[1,2,3,1]输出:4解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。偷窃到的最高金额 = 1 + 3 = 4 。示例 2:输入:[2,7

2020-07-21 22:22:21 168

原创 ***【LeetCode 101】对称二叉树(Python)

一、题目给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:进阶:你可以运用递归和迭代两种方法解决这个问题吗?二、解题思路(递归)  拿到这道题后我的思路是:首先按层走,然后在每层内正反两个顺序同步遍历,判断是否相同。如果相同,说明对称,是镜像。  我没有用leetcode内提供的模板去写,因为我一直对TreeNode运用的不大好。不太会调用左右子树。所以我把二叉树看成

2020-07-03 02:27:04 207

原创 【LeetCode 121】买卖股票的最佳时机(Python)

一、题目给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。注意:你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。注意:利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格;同时,你不能在买入前卖出股票。示例 2:

2020-07-02 22:36:57 215

原创 【LeetCode 155】最小栈(Python)

一、题目设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。push(x) —— 将元素 x 推入栈中。pop() —— 删除栈顶的元素。top() —— 获取栈顶元素。getMin() —— 检索栈中的最小元素。示例:输入:[“MinStack”,“push”,“push”,“push”,“getMin”,“pop”,“top”,“getMin”][[],[-2],[0],[-3],[],[],[],[]]输出:[null,null,null,nul

2020-06-26 02:58:56 234

原创 【LeetCode 437】路径总和III(Python)

一、题目给定一个二叉树,它的每个结点都存放着一个整数值。找出路径和等于给定数值的路径总数。路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。二叉树不超过1000个节点,且节点数值范围是 [-1000000,1000000] 的整数。示例:root = [10,5,-3,3,2,null,11,3,-2,null,1], sum = 8返回 3。和等于 8 的路径有:5 -> 35 -> 2 -> 1-3 -> 11

2020-06-25 00:51:55 362

原创 ***【LeetCode 160】相交链表(Python)

一、题目编写一个程序,找到两个单链表相交的起始节点。如下面的两个链表:在节点 c1 开始相交。示例 1:输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3输出:Reference of the node with value = 8输入解释:相交节点的值为 8 (注意,如果两个链表相交则不能为 0)。从各自的表头开始算起,链表 A 为 [4,1,8,4,5],链表 B 为

2020-06-23 23:16:16 225

原创 【LeetCode 448】找到所有数组中消失的数字(Python)

一、题目给定一个范围在 1 ≤ a[i] ≤ n ( n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次。找到所有在 [1, n] 范围之间没有出现在数组中的数字。您能在不使用额外空间且时间复杂度为O(n)的情况下完成这个任务吗? 你可以假定返回的数组不算在额外空间内。示例:输入:------------------------------------------------------------输出:[4,3,2,7,8,2,3,1]-------------

2020-06-20 18:07:48 391

原创 【LeetCode 283】移动零(Python)

一、题目给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。二、代码1笨办法,直接看吧,懒得解释。class Solution: def moveZeroes(self, nums: List[int]) -> None: """ Do not return anyth

2020-06-20 00:13:55 188

原创 【LeetCode 538】把二叉搜索树转换为累加树(Python)

一、题目给定一个二叉搜索树(Binary Search Tree),把它转换成为累加树(Greater Tree),使得每个节点的值是原来的节点值加上所有大于它的节点值之和。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/convert-bst-to-greater-tree著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。二、解题思路注意:题目给定的是二叉***搜索***树,我就是因为没有仔细看题以为只是二叉树而陷入了思维

2020-06-19 23:36:52 212

原创 【LeetCode 169】多数元素(Python)

一、题目:给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例 1:输入: [3,2,3]输出: 3二、解题思路:首先统计出现的次数...

2020-06-08 12:00:23 763

原创 【LeetCode 136】只出现一次的数字(Python)

题目:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?一、思路通过遍历题目给定的非空数组,记录首次出现的数,存入一个新建的空列表a内;已出现的数字计入另一个新建的空列表b内(重复的数)。然后遍历题目给定的非空数组是非在b内,不在的就是只出现过一次的数。时间复杂度:O(n)空间复杂度:O(n)题目要求不使用额外的空间来实现,也就是空间复杂度应该是O(1),且具有线性时间复杂度

2020-06-07 11:05:49 266

原创 【LeetCode 206】反转链表(Python)

一、题目反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题?二、重难点重点在于理解单链表,是由两个单元组成的一个存放值的value和一个指向下一节点的指针next组成。我第一想法还是使用递归调用,因为上两篇文章都用的是递归调用,很好理解。三、代码1.递归:通过调用reverseList得到(1(2(3(4

2020-06-04 22:00:26 182

原创 【LeetCode 104】二叉树的最大深度(Python)

题目:计算二叉树的最大深度值解法:和我上一篇博客用到的方法类似,通过递归就可以很简单快速的得出结果。也就是自顶向下进行 DFS(深度优先搜索)策略。代码:这道题很简单,不多做赘述。# Definition for a binary tree node.# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.right = None

2020-06-04 16:56:58 194

原创 【LeetCode 226】翻转二叉树(Python)

题目如题,这道题很简单,没什么要说的,直接放代码。# Definition for a binary tree node.# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.right = Noneclass Solution: def invertTree(self, root: TreeNode) -> Tree

2020-06-03 22:06:51 153

原创 【LeetCode 461】汉明距离(Python)

一、题目两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。给出两个整数 x 和 y,计算它们之间的汉明距离。注意:0 ≤ x, y < 231.示例:输入: x = 1, y = 4输出: 2解释:上面的箭头指出了对应二进制位不同的位置。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/hamming-distance著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。二、个人理解对题目

2020-06-03 14:18:27 838

原创 【LeetCode 617】合并二叉树(Python)

给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。示例 1:注意: 合并必须从两个树的根节点开始。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/merge-two-binary-trees著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处

2020-06-02 20:01:55 390

原创 【LeetCode 141】Linked List Cycle(Python)

Given a linked list, determine if it has a cycle in it.Follow up:Can you solve it without using extra space?题目大意:给定一个链表,判断它是否存在环。 提示:不能用额外空间解决该问题。分析:这道题很简单,若想判断链表中是否存在环,只需要设置两个步长不一样的变量。让他们不断比较,如果相等了说明...

2018-03-17 16:42:46 477

原创 【LeetCode 83】Remove Duplicates from Sorted List (Python)

Given a sorted linked list, delete all duplicates such that each element appear only once. 题目大意:给定一个链表,删除其中出现次数大于一的数。 示例: Given 1->1->2, return 1->2. Given 1->1->2->3->3, return 1->2->3. 分析: 既然给出的

2018-03-09 02:52:08 202

原创 【LeetCode 70】Climbing Stairs(Python)

You are climbing a stair case. It takes n steps to reach to the top. Each time you can either climb 1 or 2 steps. In how many distinct ways can you climb to the top? 题目分析:上楼梯问题,每次可上1或2个台阶,求出达到给定的层数有多

2018-03-07 13:03:31 332 1

原创 【LeetCode 67】Add Binary (Python)

Given two binary strings, return their sum (also a binary string). 题目分析:计算二进制数的加减法。 示例: a = “11” b = “1” Return “100”方法一:在写这篇博客前,我并不知道bin()这个方法。所以在这里给和我一样不了解的人科普一下。 bin() 返回一个整数 int 或者长整数 long in

2018-02-25 19:04:48 290 1

原创 【LeetCode 69】Sqrt(x) (Python)

Implement int sqrt(int x).Compute and return the square root of x.x is guaranteed to be a non-negative integer.题目分析:计算x的开平方,取整。示例:4--->2 ;  8--->2方法一:python中自带的一个数学库math,里面就包括计算开平方

2018-02-02 00:38:12 420

原创 【LeetCode 66】Plus One(Python)

Given a non-negative integer represented as a non-empty array of digits, plus one to the integer. You may assume the integer do not contain any leading zero, except the number 0 itself. The digits ar

2018-01-22 21:29:37 357

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除