[Leetocde]Missing Ranges

来源:互联网 发布:SQL 重启计算机 编辑:程序博客网 时间:2024/04/29 06:58
Given a sorted integer array where the range of elements are [lower, upper] inclusive, return its missing ranges.
For example, given [0, 1, 3, 50, 75], lower = 0 and upper = 99, return ["2", "4->49", "51->74", "76->99"].

-2, 99

基本思路:计算相邻元素差值,获取范围,注意2边边界

what if the array is empty? return [lower, upper]

vector<string> findMissingRanges(int A[], int n, int lower, int upper){vector<string>result;string s;if(0==n){ //handle empty condition           s += to_string(lower);           s += "->";           s += to_string(upper);           result.push_back(s);           return result;         }        for(int i = 0;i < n;i++){int diff;if((i+1) == n)diff = upper - A[i];else if(i == 0)diff = A[i] - lower;elsediff = A[i+1] - A[i];if(diff > 2){s += i==0?to_string(lower):to_string(A[i]+1);s += "->";s += (i+1)==n?to_string(upper):to_string(A[i+1] - 1);}else if(diff  == 2){s = (i==0)?to_string(lower+1):to_string(A[i] + 1);}result.push_back(s);}return result;}


0 0
原创粉丝点击