leetcode: Summary Ranges
来源:互联网 发布:浙江2017年专升本数据 编辑:程序博客网 时间:2024/06/05 04:22
思路:为方便运算,将给长度为len的给定数组nums扩展为长度为len+1的tmpNums,最后一个元素只要比其前面的元素差值超过1即可。记录起始m,终止i。先判断是否连续。不连续:再比较m与i-1是否是同一位置如果是,则直接加入输出列表;如果不是,则将i-1位置上的元素加入字符串,并加入到输出列表。连续:直接扫描下一个元素
代码:
public class Solution { public List<String> summaryRanges(int[] nums) { List<String> res = new ArrayList<String>(); int len = nums.length; int i=1; int[] tmpNums = new int[len+1]; for(int j=0; j<len; j++){ tmpNums[j] = nums[j]; } if(len == 0) { return res; } tmpNums[len] = nums[len-1]+3; if(len == 1) { res.add(tmpNums[0]+""); return res; } StringBuilder sb = new StringBuilder(tmpNums[i-1]+""); int m = i-1; while(i<len+1) { if(tmpNums[i] != tmpNums[i-1] + 1) { if(m == i-1) { res.add(sb.toString()); } else { res.add(sb.append("->"+tmpNums[i-1]).toString()); } sb = new StringBuilder(tmpNums[i]+""); m = i; } i++; } return res; }}
0 0
- leetcode 228: Summary Ranges
- Leetcode 228 Summary Ranges
- leetcode--Summary Ranges
- LeetCode 228: Summary Ranges
- [leetcode] Summary Ranges
- 【Leetcode】Summary Ranges
- Summary Ranges - LeetCode 228
- 【LeetCode】Summary Ranges
- [LeetCode]Summary Ranges
- [leetcode] Summary Ranges
- [leetcode][array] Summary Ranges
- leetcode[228]:Summary Ranges
- [LeetCode] Summary Ranges
- #leetcode#Summary Ranges
- leetcode summary-ranges
- Leetcode|Summary Ranges
- [leetCode] Summary Ranges
- [leetcode]Summary Ranges
- makefile函数
- ScrollViewer滚动到底来触发加载数据的Behavior
- 自定义EditText形状 和自定义Checkbox
- 黑马程序员——IO流篇
- IOS实现高斯模糊
- leetcode: Summary Ranges
- 一张图看尽 Linux 内核运行原理
- IOS实现背景色渐变
- JQuery用户登录时的检测
- javascript js undefined null 0 false void(0) NaN 空字符串 比较 区别
- 制作OpenStack Windows Server 2012镜像
- centos安装mysql以及mysql++开发环境
- 蓝桥杯 动态数组使用
- Java 8会干掉Scala吗?