2021/01/10 每日一題 匯總區(qū)間

LeetCode上匯總區(qū)間,簡單題還是很容易的記錄下思路
整體思路是設(shè)置兩個(gè)指針,然后對整個(gè)數(shù)組進(jìn)行循環(huán),因?yàn)閿?shù)組是遞增的,只需要前一位的值+1等于后一位的值的時(shí)候就能確認(rèn)是滿足需求。
這個(gè)時(shí)候結(jié)尾指針就向后一位,并且跳出當(dāng)前循環(huán)
如果此時(shí)前一位的值+1不等于后一位的值的時(shí)候,是不滿足需求的,結(jié)尾指針就停在當(dāng)前位,然后把開始和結(jié)尾對應(yīng)的值輸出即可。
這里用到了let r = star === end ? `${star}`:`${star}->${end}`這里叫模板字符串,用`(反引號)標(biāo)識,用{}將變量括起來,在{}內(nèi)直接輸入變量,就可以輸出變量,拼接會更方便

var summaryRanges = function(nums) {
  // 創(chuàng)建開始和結(jié)束指針
  let star = nums[0]
  let end = 0
  // 輸出的數(shù)組
  let res = []
  // 保存數(shù)組長度
  let len = nums.length
  // 循環(huán)整個(gè)數(shù)組
  for(let i = 0; i<len; i++) {   
    if(nums[i] + 1 === nums[i+1]) {
        // 如果前一位數(shù)值+1等于后一位的值,就是滿足條件
        // 結(jié)尾的值就是當(dāng)前的值
        end = nums[i + 1]
        // 跳出本輪循環(huán)
        continue
    } else {
        // 如果不相等,那么結(jié)束字符就是當(dāng)前字符
        end = nums[i]
        //要拼接字符串,并且放入結(jié)果數(shù)組
        let r = star === end ? `${star}`:`${star}->${end}`
        res.push(r)
        // 開始字符就要向前一位
        star = nums[i + 1]
    }
  }
  return res
};
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容