分数排名
力扣 178. 分数排名题目说明
SQL架构
12345678Create table If Not Exists Scores (id int, score DECIMAL(3,2))Truncate table Scoresinsert into Scores (id, score) values ('1', '3.5')insert into Scores (id, score) values ('2', '3.65')insert into Scores (id, score) values ('3', '4.0')insert into Scores (id, score) values ('4', '3.85')insert into Scores (id, score) values ('5', '4.0')insert into Scores (id, score) va ...
完美数
力扣 507. 完美数题目说明对于一个 正整数,如果它和除了它自身以外的所有 正因子 之和相等,我们称它为 「完美数」。
给定一个 整数 n, 如果是完美数,返回 true,否则返回 false
提示:
1 <= num <= 10^8
示例示例 1:
1234输入:num = 28输出:true解释:28 = 1 + 2 + 4 + 7 + 141, 2, 4, 7, 和 14 是 28 的所有正因子。
示例 2:
12输入:num = 6输出:true
示例 3:
12输入:num = 496输出:true
示例 4:
12输入:num = 8128输出:true
示例 5:
12输入:num = 2输出:false
笔者理解此题是一道数学算法问题,在力扣题库中被定义为简单题。
解法当笔者阅读完此题后,发现此题可以直接暴力求解,但是效率比较低,我们可以采用一次消去两个因子的形式,需要注意1不是完美数,让我们来看看具体如何实现的吧。
实现12345678910111213141516171819202122class Solution { ...
一手顺子
力扣 846. 一手顺子题目说明Alice 手中有一把牌,她想要重新排列这些牌,分成若干组,使每一组的牌数都是 groupSize ,并且由 groupSize 张连续的牌组成。
给你一个整数数组 hand 其中 hand[i] 是写在第 i 张牌,和一个整数 groupSize 。如果她可能重新排列这些牌,返回 true ;否则,返回 false 。
提示:
1 <= hand.length <= 10^4
0 <= hand[i] <= 10^9
1 <= groupSize <= hand.length
示例示例 1:
123输入:hand = [1,2,3,6,2,3,4,7,8], groupSize = 3输出:true解释:Alice 手中的牌可以被重新排列为 [1,2,3],[2,3,4],[6,7,8]。
示例 2:
123输入:hand = [1,2,3,4,5], groupSize = 4输出:false解释:Alice 手中的牌无法被重新排列成几个大小为 4 的组。
笔者理解此题是一道数组算法问题,在力扣题库中被 ...
统计特殊四元组
力扣 1995. 统计特殊四元组题目说明给你一个 下标从 0 开始 的整数数组 nums ,返回满足下述条件的 不同 四元组 (a, b, c, d) 的 数目 :
nums[a] + nums[b] + nums[c] == nums[d] ,且
a < b < c < d
提示:
4 <= nums.length <= 50
1 <= nums[i] <= 100
示例示例 1:
123输入:nums = [1,2,3,6]输出:1解释:满足要求的唯一一个四元组是 (0, 1, 2, 3) 因为 1 + 2 + 3 == 6 。
示例 2:
123输入:nums = [3,3,6,4,5]输出:0解释:[3,3,6,4,5] 中不存在满足要求的四元组。
示例 3:
1234567输入:nums = [1,1,1,3,5]输出:4解释:满足要求的 4 个四元组如下:- (0, 1, 2, 3): 1 + 1 + 1 == 3- (0, 1, 3, 4): 1 + 1 + 3 == 5- (0, 2, 3, 4): 1 + 1 + ...
第二高的薪水
力扣 176. 第二高的薪水题目说明
SQL架构
12345Create table If Not Exists Employee (id int, salary int)Truncate table Employeeinsert into Employee (id, salary) values ('1', '100')insert into Employee (id, salary) values ('2', '200')insert into Employee (id, salary) values ('3', '300')
编写一个 SQL 查询,获取 Employee 表中第二高的薪水(Salary) 。
1234567+----+--------+| Id | Salary |+----+--------+| 1 | 100 || 2 | 200 || 3 | 300 |+----+--------+
例如上述 Employe ...
适龄的朋友
力扣 825. 适龄的朋友题目说明在社交媒体网站上有 n 个用户。给你一个整数数组 ages ,其中 ages[i] 是第 i 个用户的年龄。
如果下述任意一个条件为真,那么用户 x 将不会向用户 y(x != y)发送好友请求:
age[y] <= 0.5 * age[x] + 7
age[y] > age[x]
age[y] > 100 && age[x] < 100否则,x 将会向 y 发送一条好友请求。
注意,如果 x 向 y 发送一条好友请求,y 不必也向 x 发送一条好友请求。另外,用户不会向自己发送好友请求。
返回在该社交媒体网站上产生的好友请求总数。
提示:
n == ages.length
1 <= n <= 2 * 10^4
1 <= ages[i] <= 120
示例示例 1:
123输入:ages = [16,16]输出:2解释:2 人互发好友请求。
示例 2:
123输入:ages = [16,17,18]输出:2解释:产生的好友请求为 17 -> 16 ,18 -> 17 ...
组合两个表
力扣 175. 组合两个表题目说明
SQL架构
12345678Create table If Not Exists Person (personId int, firstName varchar(255), lastName varchar(255))Create table If Not Exists Address (addressId int, personId int, city varchar(255), state varchar(255))Truncate table Personinsert into Person (personId, lastName, firstName) values ('1', 'Wang', 'Allen')insert into Person (personId, lastName, firstName) values ('2', 'Alice', 'Bob')Truncate table Addressinsert ...
奇偶树
力扣 1609. 奇偶树题目说明如果一棵二叉树满足下述几个条件,则可以称为 奇偶树 :
二叉树根节点所在层下标为 0 ,根的子节点所在层下标为 1 ,根的孙节点所在层下标为 2 ,依此类推。偶数下标 层上的所有节点的值都是 奇 整数,从左到右按顺序 严格递增奇数下标 层上的所有节点的值都是 偶 整数,从左到右按顺序 严格递减给你二叉树的根节点,如果二叉树为 奇偶树 ,则返回 true ,否则返回 false 。
提示:
树中节点数在范围 [1, 10^5] 内
1 <= Node.val <= 10^6
示例示例 1:
12345678输入:root = [1,10,4,3,null,7,9,12,8,6,null,null,2]输出:true解释:每一层的节点值分别是:0 层:[1]1 层:[10,4]2 层:[3,7,9]3 层:[12,8,6,2]由于 0 层和 2 层上的节点值都是奇数且严格递增,而 1 层和 3 层上的节点值都是偶数且严格递减,因此这是一棵奇偶树。
示例 2:
1234567输入:root = [5,4,2,3,3,7]输出:false解 ...
重复叠加字符串匹配
力扣 686. 重复叠加字符串匹配题目说明给定两个字符串 a 和 b,寻找重复叠加字符串 a 的最小次数,使得字符串 b 成为叠加后的字符串 a 的子串,如果不存在则返回 -1。
注意:字符串 “abc” 重复叠加 0 次是 “”,重复叠加 1 次是 “abc”,重复叠加 2 次是 “abcabc”。
提示:
1 <= a.length <= 10^4
1 <= b.length <= 10^4
a 和 b 由小写英文字母组成
示例示例 1:
123输入:a = "abcd", b = "cdabcdab"输出:3解释:a 重复叠加三遍后为 "abcdabcdabcd", 此时 b 是其子串。
示例 2:
12输入:a = "a", b = "aa"输出:2
示例 3:
12输入:a = "a", b = "a"输出:1
示例 4:
12输入:a = "abc", b = "wxyz& ...
一年中的第几天
力扣 1154. 一年中的第几天题目说明给你一个字符串 date ,按 YYYY-MM-DD 格式表示一个 现行公元纪年法 日期。请你计算并返回该日期是当年的第几天。
通常情况下,我们认为 1 月 1 日是每年的第 1 天,1 月 2 日是每年的第 2 天,依此类推。每个月的天数与现行公元纪年法(格里高利历)一致。
提示:
date.length == 10
date[4] == date[7] == ‘-‘,其他的 date[i] 都是数字
date 表示的范围从 1900 年 1 月 1 日至 2019 年 12 月 31 日
示例示例 1:
12输入:date = "2019-01-09"输出:9
示例 2:
12输入:date = "2019-02-10"输出:41
示例 3:
12输入:date = "2003-03-01"输出:60
示例 4:
12输入:date = "2004-03-01"输出:61
笔者理解此题是一道字符串算法问题,在力扣题库中被定义为简单题。
解法当笔者 ...








