`
随便小屋
  • 浏览: 102605 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

Leetcode-228-Summary Ranges

阅读更多

Summary Ranges

 

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

Credits:

Special thanks to @jianchao.li.fighter for adding this problem and creating all test cases.

题目解读:给定一个有序数组,数组中没有重复的元素,返回数组摘要。例如,数组元素为[0,1,2,4,5,7],返回["0->2","4->5","7"]。

解析:

 

首先记录第一个元素,然后查看后面的一个元素是否和前一个元素相差1,如果是,则继续向后查看并记录该数。如果不是,则形成一个“第一个元素->当前元素”的摘要。然后把下一个元素作为第一个元素,依次遍历整个数组。

Java代码:

    public List<String> summaryRanges(int[] nums) {
        List<String> result = new ArrayList<String>();
		int start = 0;
		int end = 0;
		for (int i=0; i<nums.length; i++) {
			if((i+1) < nums.length) {
				if((nums[i+1]==nums[i]) || (nums[i+1]==(nums[i]+1))) {
					end++;
					continue;
				} else {
					end = i;
				}
			} else {
				end = i;
			}
			
			if(nums[start] == nums[end]) {
				result.add(nums[start] + "");
			} else {
				result.add(nums[start] + "->" + nums[end]);
			}
			
			start = end+1;
			end = end+1;
		}
		return result;
    }

 

算法性能:




 

  • 大小: 25.2 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics