zoukankan      html  css  js  c++  java
  • 输出有序数组的连续序列范围

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


    说明:0,1,2是连续的序列,则输出0->2

    4,5又是另外一组连续的,则输出4->5

    7单独是一个序列,输出7


    注意数组没有元素(不一定为空)。仅仅有1一个元素,等等的特殊情况的处理。

    public static void summaryRanges(){//leetcode oj
    		int []nums = {1,2,3,4,6,8};
    		List<String> a = new ArrayList<String>();
    		int start=0;
    		int end = 0;
    		int temp=0;
    		int i=0;
    
    		while(i<nums.length){
    			temp=nums[i];
    			if(i+1 != nums.length && temp+1 != nums[i+1]){//特殊情况处理。超出数组长度
    				if(start == end){
    					a.add(""+nums[start]);
    				}else{
    					a.add(nums[start]+"->"+nums[end]);
    				}
    				start=i+1;
    				end= start;
    				temp = nums[start];
    				++i;
    				if(start == nums.length -1){//最后一个元素是起始元素直接加入
    					a.add(""+nums[start]);
    					break;
    				}
    			}else{
    				if(i+1 == nums.length ){//后面没有元素了,
    					if(start == end){
    						a.add(""+nums[start]);
    					}else{
    						a.add(nums[start]+"->"+nums[end]);
    					}
    					break;
    				}
    				++i;
    				temp = nums[i];
    				end = i;
    			}
    		}//while
    		//return a;
    		for(String d:a){
    			System.out.println(d);
    		}
    		
    	}


  • 相关阅读:
    日历(Calendar)模块
    关于Python3中函数:
    正则表达式全集
    python同时遍历两个list
    Python 类
    vs_code 快捷键
    Linux常用命令大全
    Linux基础命令sort
    Linux基础命令练习题答案7.10
    Linux基础命令练习题7.10
  • 原文地址:https://www.cnblogs.com/blfbuaa/p/7111370.html
Copyright © 2011-2022 走看看