LeetCode MySQL 571. 给定数字的频率查询中位数
生活随笔
收集整理的這篇文章主要介紹了
LeetCode MySQL 571. 给定数字的频率查询中位数
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
文章目錄
- 1. 題目
- 2. 解題
1. 題目
Numbers 表保存數(shù)字的值及其頻率。
+----------+-------------+ | Number | Frequency | +----------+-------------| | 0 | 7 | | 1 | 1 | | 2 | 3 | | 3 | 1 | +----------+-------------+在此表中,數(shù)字為 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 2, 3,所以中位數(shù)是 (0 + 0) / 2 = 0。
+--------+ | median | +--------| | 0.0000 | +--------+請編寫一個查詢來查找所有數(shù)字的中位數(shù)并將結(jié)果命名為 median 。
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/find-median-given-frequency-of-numbers
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。
2. 解題
- 求出正序、逆序的前綴頻數(shù)和
- 選出正反序中間位置的數(shù)(前綴頻數(shù)大于等于一半的第一個滿足的數(shù)),最后求平均
評論區(qū)簡潔解法
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/
長按或掃碼關(guān)注我的公眾號(Michael阿明),一起加油、一起學(xué)習(xí)進(jìn)步!
總結(jié)
以上是生活随笔為你收集整理的LeetCode MySQL 571. 给定数字的频率查询中位数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 1743. 从相邻元素
- 下一篇: LeetCode 1035. 不相交的线