2021/01/10 每日一题 汇总区间

LeetCode上汇总区间,简单题还是很容易的记录下思路
整体思路是设置两个指针,然后对整个数组进行循环,因为数组是递增的,只需要前一位的值+1等于后一位的值的时候就能确认是满足需求。
这个时候结尾指针就向后一位,并且跳出当前循环
如果此时前一位的值+1不等于后一位的值的时候,是不满足需求的,结尾指针就停在当前位,然后把开始和结尾对应的值输出即可。
这里用到了let r = star === end ? `${star}`:`${star}->${end}`这里叫模板字符串,用`(反引号)标识,用{}将变量括起来,在{}内直接输入变量,就可以输出变量,拼接会更方便

var summaryRanges = function(nums) {
  // 创建开始和结束指针
  let star = nums[0]
  let end = 0
  // 输出的数组
  let res = []
  // 保存数组长度
  let len = nums.length
  // 循环整个数组
  for(let i = 0; i<len; i++) {   
    if(nums[i] + 1 === nums[i+1]) {
        // 如果前一位数值+1等于后一位的值,就是满足条件
        // 结尾的值就是当前的值
        end = nums[i + 1]
        // 跳出本轮循环
        continue
    } else {
        // 如果不相等,那么结束字符就是当前字符
        end = nums[i]
        //要拼接字符串,并且放入结果数组
        let r = star === end ? `${star}`:`${star}->${end}`
        res.push(r)
        // 开始字符就要向前一位
        star = nums[i + 1]
    }
  }
  return res
};
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容