- 博客(77)
- 收藏
- 关注
原创 1527. 患某种疾病的患者(like关键字的使用)
1527. 患某种疾病的患者患者信息表: Patients写一条 SQL 语句,查询患有 I 类糖尿病的患者 ID (patient_id)、患者姓名(patient_name)以及其患有的所有疾病代码(conditions)。I 类糖尿病的代码总是包含前缀 DIAB1 。按任意顺序返回结果表。查询结果格式如下示例所示。此题解:# Write your MySQL query statement belowselect patient_id,patient_name,conditionsf
2022-05-31 11:15:51
357
原创 1484. 按日期分组销售产品(group_concat函数的使用)
1484. 按日期分组销售产品表 Activities:编写一个 SQL 查询来查找每个日期、销售的不同产品的数量及其名称。每个日期的销售产品名称应按词典序排列。返回按 sell_date 排序的结果表。查询结果格式如下例所示。此题解:# Write your MySQL query statement belowselect sell_date,count(distinct(product))as num_sold,group_concat(distinct product order
2022-05-30 15:09:47
232
原创 1141. 查询近30天活跃用户数(mysql_datediff函数的使用)
1141. 查询近30天活跃用户数活动记录表:Activity请写SQL查询出截至 2019-07-27(包含2019-07-27),近 30 天的每日活跃用户数(当天只要有一条活动记录,即为活跃用户)。以 任意顺序 返回结果表。查询结果示例如下。此题用到了mysql中的datediff函数,该函数的定义为:1.定义:DATEDIFF() 函数返回两个日期之间的时间。2.语法:DATEDIFF(datepart,startdate,enddate)startdate 和 endda
2022-05-25 16:39:32
1222
原创 599. 两个列表的最小索引总和(python之filter函数)
599. 两个列表的最小索引总和假设 Andy 和 Doris 想在晚餐时选择一家餐厅,并且他们都有一个表示最喜爱餐厅的列表,每个餐厅的名字用字符串表示。你需要帮助他们用最少的索引和找出他们共同喜爱的餐厅。 如果答案不止一个,则输出所有答案并且不考虑顺序。 你可以假设答案总是存在。备注:1.先将两个列表的公共元素取出;2.初始化一个空字典;3.将公共元素列表中的索引号对应的列表1的索引和列表2中的元素的索引相加放入该字典;4.求出字典中,键值对中值的最小值,使用filter函数过滤掉不是该最
2022-05-24 13:17:50
238
原创 1084. 销售分析III
1084. 销售分析III编写一个SQL查询,报告2019年春季才售出的产品。即仅在2019-01-01至2019-03-31(含)之间出售的商品。以任意顺序返回结果表。查询结果格式如下所示。题解:方法1:select p.product_id, p.product_namefrom Product pleft join Sales s on p.product_id=s.product_idgroup by p.product_id,p.product_namehaving mi
2022-05-22 14:44:45
95
原创 626. 换座位(max()over()函数)
626. 换座位编写SQL查询来交换每两个连续的学生的座位号。如果学生的数量是奇数,则最后一个学生的id不交换。按 id 升序 返回结果表。查询结果格式如下所分析:此题中用到了max()聚合函数和over()分析函数,max函数大家都知道其含义,将over()函数和max()函数结合使用后,就成为了开窗函数。over() 括号里面就是定义窗口的内容了,partition 是分区,分组的意思。partition by 就是根据某个字段分组。所以sum(score) over(partitio
2022-05-21 17:03:59
3113
原创 627. 变更性别(SQL中的update语句)
627. 变更性别请你编写一个 SQL 查询来交换所有的 ‘f’ 和 ‘m’ (即,将所有 ‘f’ 变为 ‘m’ ,反之亦然),仅使用 单个 update 语句 ,且不产生中间临时表。注意,你必须仅使用一条 update 语句,且 不能 使用 select 语句。查询结果如下例所示。update语句:update 表名set 列名 = 新值,.....where 筛选条件;题解:# Write your MySQL query statement belowupdate sal
2022-05-21 11:41:13
1446
原创 608. 树节点(SQL中的条件语句case when....else...end语句)
608. 树节点分析:此题需要用到SQL语言中的case when条件语句,case when的使用方法为:Case when条件表达式函数:类似Java中的if else语句。语法:CASE WHEN condition THEN result [WHEN...THEN...] ELSE result END举例:1.简单CASE WHEN…else…end函数:CASE SCORE WHEN 'A' THEN '优' ELSE '不及格' ENDCASE SCO
2022-05-20 10:58:42
216
原创 607. 销售员
607. 销售员方法1:嵌套连接# Write your MySQL query statement belowselect namefrom SalesPersonwhere sales_id not in ( select sales_id from orders where com_id in( select com_id from company where name='RED' ))方法2:全连接# Write your MySQL que
2022-05-19 15:10:35
131
原创 176. 第二高的薪水(SQL中的ifnull函数和limt1,1的使用)
176. 第二高的薪水# Write your MySQL query statement belowSelect ifnull( (SELECT distinct salary from Employee order by Salary desc limit 1,1 ),null) as SecondHighestSalary此题思路还是正常的SQL查询语句的思路:(1)查找第二高的薪水,则需要先对查找的结果进行排序,然后去重,再使用limit1,1
2022-05-18 11:53:37
454
原创 559.N 叉树的最大深度 / 589.N叉树的前序遍历 / 590.N叉树的后序遍历
559. N 叉树的最大深度给定一个 N 叉树,找到其最大深度。最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。N 叉树输入按层序遍历序列化表示,每组子节点由空值分隔(请参见示例)。题解:class Solution: def maxDepth(self, root: 'Node') -> int: if not root: return 0 # if not root.children: #
2022-05-17 14:28:19
119
原创 586. 订单最多的客户(SQL优化之Limit语法)
586. 订单最多的客户# Write your MySQL query statement belowzselect customer_numberfrom Ordersgroup by customer_numberorder by count(customer_number) desclimit 0,1此题中用到了SQL语法中的Limit语法。备注:limit n,m 中的第一次参数n表示的游标的偏移量,初始值为0,第二个参数m表示的是想要获取多少条数据。所以limit0,1表
2022-05-16 11:45:20
525
原创 566. 重塑矩阵
566. 重塑矩阵在 MATLAB 中,有一个非常有用的函数 reshape ,它可以将一个 m x n 矩阵重塑为另一个大小不同(r x c)的新矩阵,但保留其原始数据。给你一个由二维数组 mat 表示的 m x n 矩阵,以及两个正整数 r 和 c ,分别表示想要的重构的矩阵的行数和列数。重构后的矩阵需要将原始矩阵的所有元素以相同的 行遍历顺序 填充。如果具有给定参数的 reshape 操作是可行且合理的,则输出新的重塑矩阵;否则,输出原始矩阵。此题解法:1.先将原始的矩阵嵌套列表全展开
2022-05-13 12:01:47
77
原创 563. 二叉树的坡度
给你一个二叉树的根节点 root ,计算并返回整个树的坡度 。一个树的节点的坡度 定义即为,该节点左子树的节点之和和右子树节点之和的差的绝对值 。如果没有左子树的话,左子树的节点之和为 0 ;没有右子树的话也是一样。空结点的坡度是 0 。整个树的坡度就是其所有节点的坡度之和。此题是一个二叉树遍历的题目:思路:先深度优先遍历一遍二叉树,然后求左右子节点的差的绝对值,求和后返回即可。class Solution: def findTilt(self, root: Optional[Tree
2022-05-12 22:28:50
206
原创 530. 二叉搜索树的最小绝对差
530. 二叉搜索树的最小绝对差给你一个二叉搜索树的根节点 root ,返回 树中任意两不同节点值之间的最小差值 。差值是一个正数,其数值等于两值之差的绝对值。此题为二叉树的中序遍历和求列表元素最小差的题目。由于二叉搜索树中序遍历后是一个单调递增的有序数组,所以求最小绝对值,就是将遍历后得到的有序数组的相邻元素做差,取其最小值即可。二叉树的中序遍历: def inorderTraversal(root): if not root : r
2022-05-10 21:56:22
105
原创 543.二叉树的直径
543.二叉树的直径给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。本题需要明确二叉树的直径计算方法:二叉树的直径不一定过根节点,需要遍历左子节点和右子节点。root的直径 = 左子树深度+右子树的深度+1root的高度 = Max(左子树深度,右子树深度) + 1所以保存一个节点当前直径最大值,再递归的求每个节点左右子树的深度,每次递归都保存直径最大值,最后返回即可。class Solution:
2022-05-10 16:13:13
795
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人