619. 只出现一次的最大数字

简介: 619. 只出现一次的最大数字

说在前面

🎈不知道大家对于算法的学习是一个怎样的心态呢?为了面试还是因为兴趣?不管是出于什么原因,算法学习需要持续保持。

题目描述

MyNumbers 表:

+-------------+------+
| Column Name | Type |
+-------------+------+
| num         | int  |
+-------------+------+
该表可能包含重复项(换句话说,在SQL中,该表没有主键)。
这张表的每一行都含有一个整数。

单一数字 是在 MyNumbers 表中只出现一次的数字。

找出最大的 单一数字 。如果不存在 单一数字 ,则返回 null

查询结果如下例所示。

示例 1:

输入:
MyNumbers 表:
+-----+
| num |
+-----+
| 8   |
| 8   |
| 3   |
| 3   |
| 1   |
| 4   |
| 5   |
| 6   |
+-----+
输出:
+-----+
| num |
+-----+
| 6   |
+-----+
解释: 单一数字有 1、4、5 和 6 。
6 是最大的单一数字,返回 6 。

示例 2:

输入:
MyNumbers table:
+-----+
| num |
+-----+
| 8   |
| 8   |
| 7   |
| 7   |
| 3   |
| 3   |
| 3   |
+-----+
输出:
+------+
| num  |
+------+
| null |
+------+
解释: 输入的表中不存在单一数字,所以返回 null 。

解题思路

  • 1、内部查询:首先,内部的 (select num from MyNumbers group by num HAVING COUNT(num) = 1) 部分是一个子查询。它的作用是对 MyNumbers 表中的 num 字段进行分组,并且只选择出现次数为 1 的 num 值。
  • 2、外部查询:外部的 select Max(num) num from (…) 部分则是对内部查询结果进行选择,即选择内部查询中得到的仅出现一次的 num 值中的最大值。这里使用了聚合函数 MAX 来计算最大值。

AC代码

select num from (select num from MyNumbers group by num HAVING COUNT(num) = 1)

公众号

关注公众号『前端也能这么有趣』,获取更多有趣内容。

说在后面

🎉 这里是 JYeontu,现在是一名前端工程师,有空会刷刷算法题,平时喜欢打羽毛球 🏸 ,平时也喜欢写些东西,既为自己记录 📋,也希望可以对大家有那么一丢丢的帮助,写的不好望多多谅解 🙇,写错的地方望指出,定会认真改进 😊,偶尔也会在自己的公众号『前端也能这么有趣』发一些比较有趣的文章,有兴趣的也可以关注下。在此谢谢大家的支持,我们下文再见 🙌。

目录
相关文章
|
4天前
数一下 1到 100 的所有整数中出现多少个数字9并输出这些数字
数一下 1到 100 的所有整数中出现多少个数字9并输出这些数字
7 0
|
23天前
|
算法 C语言
只出现一次的数字
只出现一次的数字
|
15天前
|
存储 C++ 容器
Acwing.75 和为S的两个数字
Acwing.75 和为S的两个数字
|
1月前
|
C++
c++数字
c++数字
23 0
|
3月前
|
算法 C++
只出现一次的数字(C++)
只出现一次的数字(C++)
19 0
|
10月前
137. 只出现一次的数字 II
137. 只出现一次的数字 II
34 0
|
11月前
|
编解码 人工智能 自然语言处理
SIGGRAPH2023|DreamFace:一句话生成 3D 数字人?
SIGGRAPH2023|DreamFace:一句话生成 3D 数字人?
142 0
|
11月前
7-4 特殊数字
7-4 特殊数字
56 0

热门文章

最新文章