<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)228:匯總區(qū)間

          共 6095字,需瀏覽 13分鐘

           ·

          2021-04-06 11:34

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

          今天和大家聊的問(wèn)題叫做 匯總區(qū)間,我們先來(lái)看題面:
          https://leetcode-cn.com/problems/summary-ranges/

          You are given a sorted unique integer array nums.


          Return the smallest sorted list of ranges that cover all the numbers in the array exactly. That is, each element of nums is covered by exactly one of the ranges, and there is no integer x such that x is in one of the ranges but not in nums.

          給定一個(gè)無(wú)重復(fù)元素的有序整數(shù)數(shù)組 nums 。
          返回 恰好覆蓋數(shù)組中所有數(shù)字 的 最小有序 區(qū)間范圍列表。也就是說(shuō),nums 的每個(gè)元素都恰好被某個(gè)區(qū)間范圍所覆蓋,并且不存在屬于某個(gè)范圍但不屬于 nums 的數(shù)字 x 。

          示例


          示例 1

          輸入:nums = [0,1,2,4,5,7]
          輸出:["0->2","4->5","7"]
          解釋:區(qū)間范圍是:
          [0,2] --> "0->2"
          [4,5] --> "4->5"
          [7,7] --> "7"

          示例 2

          輸入:nums = [0,2,3,4,6,8,9]
          輸出:["0","2->4","6","8->9"]
          解釋:區(qū)間范圍是:
          [0,0] --> "0"
          [2,4] --> "2->4"
          [6,6] --> "6"
          [8,9] --> "8->9"

          示例 3

          輸入:nums = []
          輸出:[]

          示例 4

          輸入:nums = [-1]
          輸出:["-1"]

          示例 5

          輸入:nums = [0]
          輸出:["0"]


          解題


          思路:直接遍歷過(guò)去,看到某一個(gè)元素和其前面的元素并非相差1的情況下直接將之前的元素打包起來(lái)裝好就行,在循環(huán)遍歷結(jié)束后再進(jìn)行一次打包。C++代碼如下:


          class Solution {
          public:
              vector<string> summaryRanges(vector<int>& nums) {
                  vector<string> r;
                  if(nums.size()==0) return r;
                  int a = nums[0];
                  int c = nums[0];
                  bool b = true;
                  for(int i= 1;i<nums.size();i++)
                  {
                      if(c+1 == nums[i])
                      {
                          c = nums[i];
                      }
                      else
                      {
                          if(b){
                              if(c == a)
                              {
                                  r.push_back(to_string(a));
                                  b = false;
                                  i--;
                              }
                              else
                              {
                                  r.push_back(to_string(a)+"->"+to_string(c));
                                  b = false;
                                  i--;
                              }
                          }
                          else{
                              a = nums[i];
                              c = nums[i];
                              b = true;
                          }
                      }
                  }
                  if(b){
                      if(c == a)
                      {
                          r.push_back(to_string(a));
                          b = false;
                      }
                      else
                      {
                          r.push_back(to_string(a)+"->"+to_string(c));
                      }
                  }
                  return r;
              }
          };



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

          上期推文:

          LeetCode1-220題匯總,希望對(duì)你有點(diǎn)幫助!

          LeetCode刷題實(shí)戰(zhàn)221:最大正方形

          LeetCode刷題實(shí)戰(zhàn)222:完全二叉樹的節(jié)點(diǎn)個(gè)數(shù)

          LeetCode刷題實(shí)戰(zhàn)223:矩形面積

          LeetCode刷題實(shí)戰(zhàn)224:基本計(jì)算器

          LeetCode刷題實(shí)戰(zhàn)225:用隊(duì)列實(shí)現(xiàn)棧

          LeetCode刷題實(shí)戰(zhàn)226:翻轉(zhuǎn)二叉樹

          LeetCode刷題實(shí)戰(zhàn)227:基本計(jì)算器 II


          瀏覽 35
          點(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>
                  免费观看成人黄色视频 | 草久久久久久 | 销魂美女一级A片免费看 | 伊人干干 | 2019人人操 |