LeetCode MySQL 571. 给定数字的频率查询中位数
生活随笔
收集整理的這篇文章主要介紹了
LeetCode MySQL 571. 给定数字的频率查询中位数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1. 題目
- 2. 解題
1. 題目
Numbers 表保存數字的值及其頻率。
+----------+-------------+ | Number | Frequency | +----------+-------------| | 0 | 7 | | 1 | 1 | | 2 | 3 | | 3 | 1 | +----------+-------------+在此表中,數字為 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 2, 3,所以中位數是 (0 + 0) / 2 = 0。
+--------+ | median | +--------| | 0.0000 | +--------+請編寫一個查詢來查找所有數字的中位數并將結果命名為 median 。
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/find-median-given-frequency-of-numbers
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
2. 解題
- 求出正序、逆序的前綴頻數和
- 選出正反序中間位置的數(前綴頻數大于等于一半的第一個滿足的數),最后求平均
評論區簡潔解法
select avg(Number) median from (select Number,sum(Frequency) over (order by Number asc) c1,sum(Frequency) over (order by Number desc) c2,sum(Frequency) over () cntfrom Numbers ) t where c1 >= cnt/2 and c2 >= cnt/2我的CSDN博客地址 https://michael.blog.csdn.net/
長按或掃碼關注我的公眾號(Michael阿明),一起加油、一起學習進步!
總結
以上是生活随笔為你收集整理的LeetCode MySQL 571. 给定数字的频率查询中位数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 1743. 从相邻元素
- 下一篇: linux cmake编译源码,linu