<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          ?LeetCode刷題實(shí)戰(zhàn)180:連續(xù)出現(xiàn)的數(shù)字

          共 1507字,需瀏覽 4分鐘

           ·

          2021-02-10 16:09

          算法的重要性,我就不多說了吧,想去大廠,就必須要經(jīng)過基礎(chǔ)知識和業(yè)務(wù)邏輯面試+算法面試。所以,為了提高大家的算法能力,這個公眾號后續(xù)每天帶大家做一道算法題,題目就從LeetCode上面選 !

          今天和大家聊的問題叫做?連續(xù)出現(xiàn)的數(shù)字??,我們先來看題面:
          https://leetcode-cn.com/problems/consecutive-numbers/

          Write an SQL query to find all numbers that appear at least three times consecutively.


          Return the result table in any order.

          題意


          編寫一個 SQL 查詢,查找所有至少連續(xù)出現(xiàn)三次的數(shù)字。
          返回的結(jié)果表中的數(shù)據(jù)可以按 任意順序 排列。

          示例

          解題


          如果是在Java等編程語言中,直接用for循環(huán)遍歷一遍基本就出來了,但是在MySQL沒有遍歷表這種流程控制結(jié)構(gòu)。
          但我我們可以分析一下編程語言中的過程,首先我們需要一個pre變量記錄前面一個值是多少,以及前面那個值連續(xù)出現(xiàn)次數(shù)。

          #對結(jié)果進(jìn)行去重處理
          select distinct Num as?ConsecutiveNums
          #將Num以及連續(xù)出現(xiàn)的次數(shù)作為一個新表
          from?(
          ??#計(jì)算Num,到當(dāng)前遍歷的位置連續(xù)出現(xiàn)的次數(shù)
          ??select Num, (
          ??????case
          ??????#如果Num == 前一個值,個數(shù)自增
          ??????when?@prev = Num then?@count := @count + 1
          ??????#否則計(jì)數(shù)器count為1,并更新prev為當(dāng)前Num的值
          ??????when?(@prev := Num) is?not?null?then?@count := 1
          ??????end
          ??) as?CNT
          ??from?Logs, (select @prev := null,@count := null) as?t
          ) as?temp
          #篩選出連續(xù)出現(xiàn)次數(shù)超過3的
          where temp.CNT >= 3


          好了,今天的文章就到這里,如果覺得有所收獲,請順手點(diǎn)個在看或者轉(zhuǎn)發(fā)吧,你們的支持是我最大的動力 。

          上期推文:

          LeetCode1-160題匯總,希望對你有點(diǎn)幫助!
          LeetCode刷題實(shí)戰(zhàn)161:相隔為1的編輯距離
          LeetCode刷題實(shí)戰(zhàn)162:尋找峰值
          LeetCode刷題實(shí)戰(zhàn)163:缺失的區(qū)間
          LeetCode刷題實(shí)戰(zhàn)164:最大間距
          LeetCode刷題實(shí)戰(zhàn)165:比較版本號
          LeetCode刷題實(shí)戰(zhàn)166:分?jǐn)?shù)到小數(shù)
          LeetCode刷題實(shí)戰(zhàn)167:兩數(shù)之和 II - 輸入有序數(shù)組
          LeetCode刷題實(shí)戰(zhàn)168:Excel表列名稱
          LeetCode刷題實(shí)戰(zhàn)169:多數(shù)元素
          LeetCode刷題實(shí)戰(zhàn)170:兩數(shù)之和 III - 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)
          LeetCode刷題實(shí)戰(zhàn)171:Excel表列序號
          LeetCode刷題實(shí)戰(zhàn)172:階乘后的零
          LeetCode刷題實(shí)戰(zhàn)173:二叉搜索樹迭代器
          LeetCode刷題實(shí)戰(zhàn)174:地下城游戲
          LeetCode刷題實(shí)戰(zhàn)175:組合兩個表
          LeetCode刷題實(shí)戰(zhàn)176:第二高的薪水
          LeetCode刷題實(shí)戰(zhàn)177:第N高的薪水
          LeetCode刷題實(shí)戰(zhàn)178:分?jǐn)?shù)排名
          LeetCode刷題實(shí)戰(zhàn)179:最大數(shù)

          瀏覽 55
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  精品日产乱码久久久 | 欧美成人精品一区二区综合免费 | 正在播放国产一区 | 色五月婷婷婷 | 日本综合在线观看 |