程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> LeetCode 228 Summary Ranges(值域)(*)

LeetCode 228 Summary Ranges(值域)(*)

編輯:C++入門知識

LeetCode 228 Summary Ranges(值域)(*)


翻譯

給定一個無重復的已排序整型數組,返回其中范圍的集合。
例如 ,給定[0,1,2,4,5,7],返回["0->2","4-5","7"]。

原文

Given a sorted integer array without duplicates, return the summary of its ranges.

For example, given [0,1,2,4,5,7], return ["0->2","4->5","7"].

分析

首先判斷nums的長度,小於1的話直接未添加任何元素的vector了。

否則從索引0開始一直遍歷所有nums元素。對其進行相應的判斷,如果下一個元素和當前元素是緊鄰的就直接遞增索引而不做其他操作。

代碼中還是用了to_string函數來從整型構造字符串。

代碼

class Solution {
public:
    vector summaryRanges(vector& nums) {
        vector v;
        if (nums.size() < 1) return v;
        int index = 0, pos = 0;
        while (index < nums.size()) {
            if (index + 1 < nums.size() && nums[index + 1] == nums[index] + 1)
                index++;
            else {
                if (pos == index) {
                    v.push_back(to_string(nums[index]));
                }
                else {
                    v.push_back(to_string(nums[pos]) + "->" + to_string(nums[index]));
                }
                index++;
                pos = index;
            }
        }
        return v;
    }
};

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved