【LeetCode OJ 228】Summary Ranges
来源:互联网 发布:阿里云服务器绑定域名 编辑:程序博客网 时间:2024/05/21 18:37
题目链接:https://leetcode.com/problems/summary-ranges/
题目:
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"].
示例代码:
public class Solution{public static void main(String[] args){int nums[]=new int[]{1,2,4,5,7};List<String> rList=new Solution().summaryRanges(nums);for(String str:rList){System.out.println(str);}}public List<String> summaryRanges(int[] nums){ List<String> result=new ArrayList<String>(); int startLine=0; //起始位置 int endLine=0;//结束位置 int num=0;//扫描计数 for(int i=0;i<nums.length;i++) { int j=i; int k=j+1; if(k<nums.length) { //后面的数>当前数+1,且只扫描了一个数,就将该数放入result中 if(nums[k]>(nums[j]+1)&&num==0) { result.add(String.valueOf(nums[j])); startLine=k; endLine=k; num=0; } //后面的数>当前数+1,扫描了(endLine-start+1)个数,就将nums[startLine])+"->"+String.valueOf(nums[endLine])放入result中 else if(nums[k]>(nums[j]+1)&&num>0) { result.add(String.valueOf(nums[startLine])+"->"+String.valueOf(nums[endLine])); startLine=k; endLine=k; num=0; } //后面的数=当前数+1,移动endLine,num++即可 else if(nums[k]-nums[j]==1) { endLine=k; num++; } } //扫描最后一个数 else { if(num==0) result.add(String.valueOf(nums[k-1])); else { result.add(String.valueOf(nums[startLine])+"->"+String.valueOf(nums[endLine])); num=0; } } } return result; }}
0 0
- 【LeetCode OJ 228】Summary Ranges
- LeetCode OJ 之 Summary Ranges
- <LeetCode OJ> 228. Summary Ranges
- leetcode 228: Summary Ranges
- Leetcode 228 Summary Ranges
- LeetCode 228: Summary Ranges
- Summary Ranges - LeetCode 228
- leetcode[228]:Summary Ranges
- leetcode 228:Summary Ranges
- Summary Ranges(leetcode 228)
- Leetcode #228 Summary Ranges
- leetCode #228 Summary Ranges
- leetcode 228: Summary Ranges
- [Leetcode]#228 Summary Ranges
- Leetcode 228 Summary Ranges
- [LeetCode 228] Summary Ranges
- 【LeetCode】228 Summary Ranges
- LeetCode 228 Summary Ranges
- Spring+Mybatis多数据源配置(一)——MySQL与Oracle通过配置切换
- Python获取操作系统信息(版本、操作系统名称、位数、架构等)
- 微信红包实现原理
- ie6 兼容整理《一》
- coderforce 490A - Team Olympiad
- 【LeetCode OJ 228】Summary Ranges
- 自定义zTree+easyui右键菜单
- Class<T>.getDeclaredConstructors0(boolean) line: not available [native method]
- 用一个listview达到ScrollView的效果
- Ecc6.0和R/3的区别,新功能增加
- android计算pad或手机的分辨率/像素/密度/屏幕尺寸/DPI值的方法
- iOS项目开发实战(Swift)—项目目录和结构
- ARM指令英文全称及功能
- Android 3.0动画系统详解