<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>

          golang刷leetcode: 小于等于 K 的最長(zhǎng)二進(jìn)制子序列

          共 1139字,需瀏覽 3分鐘

           ·

          2022-07-09 03:09

          給你一個(gè)二進(jìn)制字符串 s 和一個(gè)正整數(shù) k 。

          請(qǐng)你返回 s 的 最長(zhǎng) 子序列,且該子序列對(duì)應(yīng)的 二進(jìn)制 數(shù)字小于等于 k 。

          注意:

          子序列可以有 前導(dǎo) 0 。

          空字符串視為 0 。

          子序列 是指從一個(gè)字符串中刪除零個(gè)或者多個(gè)字符后,不改變順序得到的剩余字符序列。

          示例 1:

          輸入:s = "1001010", k = 5

          輸出:5

          解釋:s 中小于等于 5 的最長(zhǎng)子序列是 "00010" ,對(duì)應(yīng)的十進(jìn)制數(shù)字是 2 。

          注意 "00100" 和 "00101" 也是可行的最長(zhǎng)子序列,十進(jìn)制分別對(duì)應(yīng) 4 和 5 。

          最長(zhǎng)子序列的長(zhǎng)度為 5 ,所以返回 5 。

          示例 2:

          輸入:s = "00101001", k = 1

          輸出:6

          解釋:"000001" 是 s 中小于等于 1 的最長(zhǎng)子序列,對(duì)應(yīng)的十進(jìn)制數(shù)字是 1 。

          最長(zhǎng)子序列的長(zhǎng)度為 6 ,所以返回 6 。

          提示:

          1 <= s.length <= 1000

          s[i] 要么是 '0' ,要么是 '1' 。

          1 <= k <= 109

          解題思路:

          1,貪心思想:對(duì)于0都要保留,對(duì)于1,盡可能多保留

          2,如果確定保留還是丟棄1,從最低位開(kāi)始,如果計(jì)算出來(lái)的10進(jìn)制數(shù)大于k需要丟棄

          3,我們統(tǒng)計(jì)需要丟棄的1的個(gè)數(shù),就可以得到最多保留長(zhǎng)度

          4,這個(gè)題比較坑的地方在于字符串的長(zhǎng)度,因?yàn)樽畲笫?000,超過(guò)了整型的標(biāo)識(shí)范圍會(huì)溢出,也就是總有兩個(gè)用例不能通過(guò)的原因。

          代碼實(shí)現(xiàn):

          func longestSubsequence(s string, k int) int {  sum:=0  removed:=0  for i:=0;i<len(s);i++{      if s[len(s)-1-i]=='1'{          if sum>=k{              removed++          }else if i>31{              removed++          }else{              sum+=1<<i              if sum >k{                  removed++              }          }      }  }  return len(s)-removed}


          推薦閱讀


          福利

          我為大家整理了一份從入門到進(jìn)階的Go學(xué)習(xí)資料禮包,包含學(xué)習(xí)建議:入門看什么,進(jìn)階看什么。關(guān)注公眾號(hào) 「polarisxu」,回復(fù) ebook 獲取;還可以回復(fù)「進(jìn)群」,和數(shù)萬(wàn) Gopher 交流學(xué)習(xí)。

          瀏覽 56
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

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

          手機(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>
                  欧美精品18videosex性欧美 | 婷婷我也去 | 亚洲丝袜足交 | 欧美A片免费 | 东京热一区二区三区精品无码 |