zoukankan      html  css  js  c++  java
  • Leetcode228. 汇总区间

    题意

    有序序列,将每个有序小区间表示出来

    思路

    • 主要是用双指针进行模拟,每次定出有序小区间的开头和末尾,将其转换为字符串进行处理

    • ⚠️

      • 1⃣️双指针注意都不要越界访问了非法地址
      • 2⃣️小区间长度为1和不为1是用不同的字符串表示的

    代码

    class Solution {
    public:
        vector<string> summaryRanges(vector<int>& nums) {
            vector<string> ans;
            int cur1 = 0, cur2 = 0;
            while(cur1 < nums.size()){
                cur2++;
                //1.跑在前面的指针如果刚好超出,说明[cur1, nums.size() - 1]这个是一个有序小区间
                //2.或者是到了另一个有序区间的开头
                if(cur2 == nums.size() ||  nums[cur2] != nums[cur2 - 1] + 1){
                    string tmp = "";
                    if(nums[cur1] != nums[cur2 - 1]){
                        tmp += to_string(nums[cur1]);
                        tmp += "->";
                        tmp += to_string(nums[cur2 - 1]);
                        ans.emplace_back(tmp); 
                    }else{
                        tmp = to_string(nums[cur1]);
                        ans.emplace_back(tmp);ee
                    }
                    cur1 = cur2;
                    if(cur2 >= nums.size()) break;   //说明已经处理完了要退出循环
                }
            }
            return ans;
        }
    };
    
  • 相关阅读:
    FreeSql 教程引导
    Day3-JS-JavaScript 函数专题
    Day2-JS-JSON
    Day2-JS-let和const
    Day2-JS-this 关键字
    Day2-JS-JavaScript 验证 API
    Day2-JS-表单
    Day2-JS-严格模式
    Day2-JS-JavaScript 错误
    Day2-JS-正则表达式
  • 原文地址:https://www.cnblogs.com/MartinLwx/p/14104899.html
Copyright © 2011-2022 走看看