关闭

Leetcode_228_Summary Ranges

标签: LeetCode算法编程JAVA
1045人阅读 评论(0) 收藏 举报
分类:

本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/46762039


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


思路:

(1)题意为给定已排好序的数组。求解数组中连续数字的范围,并以"->"连接起始数字和终止数字。

(2)这道题相对比较简单。只需设置两个变量m、n,初始化指向数组第一个元素,循环遍历数组,如果第i个元素和第i+1个元素值相差1,则变量n往后移;如果不相等,则变量m和n所指位置的元素即为当前起始数字和终止数字,即可获得字符串并存入集合中,此时m和n需要往后移动1位;循环直到数组遍历完成。在遍历的过程中还需要注意的是:对倒数第2个元素和倒数第1个元素的判断,以及不连续情况下m和n是否相等的判断。详情见下方代码。(代码虽然长点,但是思路还是比较清晰的)

(3)希望本文对你有所帮助。


算法代码实现如下:

package leetcode;

import java.util.ArrayList;
import java.util.List;

/**
 * 
 * @author liqqc
 *
 */
public class Summary_Ranges {

	public static void main(String[] args) {
		int[] arr = { 1, 3 };
		summaryRanges(arr);
	}

	public static List<String> summaryRanges(int[] nums) {
		int len = nums.length;
		List<String> result = new ArrayList<String>();
		int m = 0, n = 0;
		StringBuffer buffer = null;

		if (len == 1) {
			buffer = new StringBuffer();
			buffer.append(nums[0]);
			result.add(buffer.toString());
			return result;
		}

		for (int i = 0; i < len - 1; i++) {
			buffer = new StringBuffer();
			if (nums[i] + 1 == nums[i + 1]) {
				n++;
				//i为倒数第二个元素,则i+1为最后一个元素
				if (i + 1 == len - 1) {
					buffer.append(nums[m]);
					buffer.append("->");
					buffer.append(nums[n]);
					result.add(buffer.toString());
				}
			} else {
				// 不连续了
				if(m==n){
					buffer.append(nums[m]);
				}else{
					buffer.append(nums[m]);
					buffer.append("->");
					buffer.append(nums[n]);
				}
				result.add(buffer.toString());

				m = i + 1;
				n = i + 1;
				
				//不连续情况下
				if (i == len - 2) {
					buffer = new StringBuffer();
					buffer.append(nums[len - 1]);
					result.add(buffer.toString());
				}
			}
		}
		return result;
	}
}


1
0
查看评论

leetcode 228: Summary Ranges

leetcode 228: Summary Ranges python, java, c++
  • xudli
  • xudli
  • 2015-06-26 06:22
  • 10151

LeetCode228——Summary Ranges

一个月没写C++代码,现在感到好陌生 Given a sorted integer array without duplicates, return the summary of its ranges. For example, given [0,1,2,4,5,7], return [&quo...
  • booirror
  • booirror
  • 2015-07-09 00:25
  • 1834

LeetCode 228: 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","...
  • sunao2002002
  • sunao2002002
  • 2015-06-26 18:32
  • 3861

Leetcode_228_Summary Ranges

本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/46762039 Given a sorted integer array without duplicates, return the summary...
  • pistolove
  • pistolove
  • 2015-07-05 11:07
  • 1045

ABAP RANGES 在 RFC 的应用示例

写一个RFC,在VK11下,把条件类型是Z907的一些数据输出。 在IMPORT下入参 定义2个 IT_VKORG LIKEA907-VKORG                   ...
  • zhongguomao
  • zhongguomao
  • 2016-10-28 09:06
  • 539

ABAP RANGES 在 RFC 的应用示例

写一个RFC,在VK11下,把条件类型是Z907的一些数据输出。 在IMPORT下入参 定义2个 IT_VKORG LIKEA907-VKORG                    销售组织&...
  • szlaptop
  • szlaptop
  • 2012-12-26 16:11
  • 2564

leetcode解题报告228——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...
  • xxxknight
  • xxxknight
  • 2015-06-28 00:42
  • 454

16.leetcode题目228: 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 ["...
  • hzj379805931
  • hzj379805931
  • 2016-03-14 12:30
  • 85

SAP ABAP编程 Ranges用法

在SAP中,有时候需要把单值的结构变成区间的结构,也就是类似SELECTION-OPTION的功能,SAP提供了RANGES来实现该功能. (SAP 中SELECTION-OPTION 是个很强大的功能,在程序中也经常需要类似SELECTION-OPTION的功能,如果不画屏幕的话,SAP提供了RA...
  • qinyuezhan
  • qinyuezhan
  • 2014-11-07 16:19
  • 6830

FCC Friendly Date Ranges

直接上代码function makeFriendlyDates(arr) { var months = { "01" : "January", "02" : "February", "...
  • V_aer
  • V_aer
  • 2018-01-12 20:29
  • 73
    个人资料
    • 访问:461867次
    • 积分:6820
    • 等级:
    • 排名:第4092名
    • 原创:192篇
    • 转载:10篇
    • 译文:0篇
    • 评论:219条
    博客专栏
    最新评论