LeetCode 228. Summary Ranges(归纳区间)
来源:互联网 发布:哪里可以买到淘宝号 编辑:程序博客网 时间:2024/06/08 02:00
原题网址: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 List<String> summaryRanges(int[] nums) { Range[] ranges = new Range[nums.length]; int size = 0; for(int i=0; i<nums.length; i++) { if (i > 0 && ranges[size-1].to + 1 == nums[i]) ranges[size-1].to ++; else ranges[size++] = new Range(nums[i], nums[i]); } List<String> results = new ArrayList<String>(); for(int i=0; i<size; i++) { if (ranges[i].from == ranges[i].to) results.add(Integer.toString(ranges[i].from)); else results.add(Integer.toString(ranges[i].from) + "->" + Integer.toString(ranges[i].to)); } return results; }}class Range { int from, to; Range(int from, int to) { this.from = from; this.to = to; }}
另一种类似的方法:
public class Solution { public List<String> summaryRanges(int[] nums) { List<String> ranges = new ArrayList<>(); if (nums == null || nums.length == 0) return ranges; int[] range = new int[] {nums[0], nums[0]}; for(int i=1; i<=nums.length; i++) { if (i<nums.length) { if (range[1]+1 == nums[i]) { range[1] = nums[i]; } else { if (range[0] == range[1]) ranges.add(Integer.toString(range[0])); else ranges.add(Integer.toString(range[0]) + "->" + Integer.toString(range[1])); range[0] = nums[i]; range[1] = nums[i]; } } else { if (range[0] == range[1]) ranges.add(Integer.toString(range[0])); else ranges.add(Integer.toString(range[0]) + "->" + Integer.toString(range[1])); } } return ranges; }}
0 0
- LeetCode 228. Summary Ranges(归纳区间)
- [leetcode]228.Summary Ranges
- [LeetCode]228.Summary Ranges
- [leetcode] 228.Summary Ranges
- [leetcode] 228. Summary Ranges
- 228. Summary Ranges LeetCode
- 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
- Leetcode 228. Summary Ranges
- LeetCode 228. Summary Ranges
- Leetcode 228. Summary Ranges
- LeetCode 228. Summary Ranges
- 学习总结HTML CSS JAVASCRIPT,对三剑客的一些理解
- Android实现双进程守护
- LeetCode 227. Basic Calculator II(基本计算器II)
- 请咬牙
- 基于协同过滤,NMF和Baseline的推荐算法
- LeetCode 228. Summary Ranges(归纳区间)
- LeetCode 229. Majority Element II(众数II)
- python 的环境搭建
- seo学习1
- Kafka安装部署
- 组合数学--卡特兰数
- hdu4292Food【拆点网络流】
- Android 中进程、线程的概念
- 动态规划之Edit Step Ladders