Summary Ranges
来源:互联网 发布:linux syslink命令 编辑:程序博客网 时间:2024/06/10 04:01
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"].
Credits:
好久没做的题,一上来有点小慌,觉得没有印象可能不能一下子写出来。不过还好。看来应该是理解了一部分。
这道题跟missing range不太一样,
这道题的思路是用两个指针,一个指向连续段的前端,一个指向连续段的后端。在一个while循环的开始,用一个while循环不断的更新cur指针的位置,更新的条件有两个1. 不超过数组的范围 2.跟后面的元素是相邻的 (+1的关系)。跳出循环后需要记录下当前的结果。这时记得要更新cur跟pre的下标。
代码:
public List<String> summaryRanges(int[] nums) { List<String> result = new ArrayList<>(); if(nums == null || nums.length == 0) return result; int pre = 0; int cur = 0; while(cur < nums.length){ if(cur<nums.length-1 && nums[cur+1] == nums[cur]+1){ cur++; }else{ if(pre == cur){ result.add(Integer.toString(nums[pre])); }else{ String str = nums[pre] + "->" + nums[cur]; result.add(str); } cur++; pre = cur; } } return result; }
同样用for循环来写:
[1,3]
0 0
- Summary Ranges
- summary ranges
- Summary Ranges
- Summary Ranges
- Summary Ranges
- Summary Ranges
- Summary Ranges
- Summary Ranges
- Summary Ranges
- Summary Ranges
- Summary Ranges
- Summary Ranges
- Summary ranges
- Summary Ranges
- Summary Ranges
- Summary Ranges
- Summary Ranges
- Summary Ranges
- 剑指offer经典编程(四)
- 所学7
- 几个常用机器学习算法 - 最大熵模型
- js 替换 当前URL 特定参数
- 设置文件上传限制(解除限制)
- Summary Ranges
- iOS 10 UICollectionView 性能优化
- Android 系列 4进程间/程间内通信
- python里如何保存float类型的小数的位数
- 《iOS 7 Human Interface Guidelines中文版》读书笔记(1)
- Keras深度学习框架windows端详细配置(吐血)
- 将文件夹的所有word名全部复制到文档里
- Linux打补丁常用命令
- [算法]详解关键路径算法