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


    说在前面

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

    题目描述

    MyNumbers 表:

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

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

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

    查询结果如下例所示。

    示例 1:

    输入:
    MyNumbers 表:
    +-----+
    | num |
    +-----+
    | 8   |
    | 8   |
    | 3   |
    | 3   |
    | 1   |
    | 4   |
    | 5   |
    | 6   |
    +-----+
    输出:
    +-----+
    | num |
    +-----+
    | 6   |
    +-----+
    解释: 单一数字有 1、4、5 和 6 。
    6 是最大的单一数字,返回 6 。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    示例 2:

    输入:
    MyNumbers table:
    +-----+
    | num |
    +-----+
    | 8   |
    | 8   |
    | 7   |
    | 7   |
    | 3   |
    | 3   |
    | 3   |
    +-----+
    输出:
    +------+
    | num  |
    +------+
    | null |
    +------+
    解释: 输入的表中不存在单一数字,所以返回 null 。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    解题思路

    • 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)
    
    • 1

    公众号

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

    说在后面

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

  • 相关阅读:
    复现SCI文章系列教程 | 文章复现一(IF 7.3):文章讨论与文章分析套路讲解
    PyTorch Lightning入门教程(二)
    docker swarm集群部署
    大三实习生,字节跳动面经分享,已拿Offer
    react组件通信
    《OpenCV4快速入门》------函数摘要
    java leetcodetop100 (3,4 )最长连续数列,移动零
    2.9 深入GPU硬件架构及运行机制
    计算机网络------数据链路层与交换机
    5 个用于复古图像着色的开源 Python 工具
  • 原文地址:https://blog.csdn.net/Twinkle_sone/article/details/136258117