博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode[163]Missing Ranges
阅读量:4651 次
发布时间:2019-06-09

本文共 2240 字,大约阅读时间需要 7 分钟。

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"].

需要考虑lower  upper 在数组元素A[i]~A[j]之间的情况,即先用二分查找,找到第一个A[begin]大于等于lower的下标begin,再找到第一个大于等于upper的下标end,若找到,则第一个小于upper的下标为end-1;

string i_tos(int n){    string s="";    char buf[4];    s+=itoa(n,buf,10);    return s;}string show(int left, int right){    if(left==right)return i_tos(left);    else return i_tos(left)+"->"+i_tos(right);}//找第一个大于等于value的数组的下标int iLower(int A[], int left, int right, int value){    while(left
findMissingRanges(int A[], int n, int lower, int upper) { vector
res; if(n==0||upper
A[n-1]) res.push_back(show(lower,upper)); else { int begin=iLower(A, 0, n-1, lower); if(lower

之前没有考虑lower upper 在数组元素A[i]~A[j]之间,以下为之前的代码:

1). 为空,lower upper 之间关系。

2). lower A[0]  之间关系

3). A[i]~A[i+1]  之间关系

4). A[A.length-1] ~ upper 之间关系

string i_tos(int n)    {        string s="";        char buf[4];        s+=itoa(n,buf,10);        return s;    }    vector
findMissingRanges(int A[], int n, int lower, int upper) { vector
res; string str=""; if(n==0) { if(upper-lower>=1) str+=i_tos(lower)+"->"+i_tos(upper); else str+=i_tos(lower); if(str!="")res.push_back(str); } else { if (lower
1)str+=i_tos(lower)+"->"+i_tos(A[0]-1); else str+=i_tos(lower); if(str!="")res.push_back(str); } for (int i=1;i
2) str+=i_tos(A[i-1]+1)+"->"+i_tos(A[i]-1); else if(A[i]-A[i-1]==2) str+=i_tos(A[i-1]+1); if(str!="")res.push_back(str); str=""; } if(upper>A[n-1]) { if(upper-A[n-1]>1) str+=i_tos(A[n-1]+1)+"->"+i_tos(upper); else str+=i_tos(upper); if(str!="")res.push_back(str); } } return res; }

 

转载于:https://www.cnblogs.com/Vae1990Silence/p/4280616.html

你可能感兴趣的文章
POJ 3723
查看>>
springmvc3.2+spring+hibernate4全注解方式整合(一)
查看>>
Elgg网站迁移指南
查看>>
installshield 注册dll
查看>>
Sublime Text 3 及Package Control 安装(附上一个3103可用的Key)
查看>>
Get MAC address using POSIX APIs
查看>>
基于uFUN开发板的心率计(一)DMA方式获取传感器数据
查看>>
【dp】船
查看>>
oracle, group by, having, where
查看>>
⑥python模块初识、pyc和PyCodeObject
查看>>
Kibana:分析及可视化日志文件
查看>>
nodejs pm2使用
查看>>
cocos2d-x 3.10 PageView BUG
查看>>
装饰器的基本使用:用户登录
查看>>
CSS选择器总结
查看>>
mysql中sql语句
查看>>
head/tail实现
查看>>
sql语句的各种模糊查询语句
查看>>
vlc 学习网
查看>>
Python20-Day05
查看>>