• summary ranges leetcode 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"].

    给定一个排好序的数组,用区间范围进行概括该数组后,返回新的区间范围数组。

    算法:

    //返回范围
    public static List<String> changes(int[] nums){
        //当nums为空时,应该返回[]
      List<String> list = new ArrayList<String>();
      if(nums == null || nums.length == 0) //对于这种类型的返回值,都是预先设定一个list,然后判断后直接返回list,而不是单独返回null
        return list;
      int begin = nums[0];
      String range = "";
      for(int i = 1; i < nums.length ; i++){
        if(nums[i] - nums[i - 1] == 1)
          continue;
        else {
           if(begin == nums[i - 1]) //若一个数成为一个分段
              range = begin + "";
           else { //若连续几个数成为一个分段
              range = begin + "->" + nums[i - 1];
             }
              list.add(range); //加入一个分段到list中
           begin = nums[i]; //设定下一个分段的初始值
        }
       }
      //对最后一个范围进行特殊处理
      if(begin == nums[nums.length - 1])
        range = begin + "";
      else
        range = begin + "->" + nums[nums.length - 1];
      list.add(range);
      return list;
    }
  • 相关阅读:
    初学git(一):创建本地“仓库”
    git常用命令
    Linux学习(一):从图形界面进入命令行及命令行进入图形界面
    继承与派生
    数据类型和表达式
    UDP
    网络与通信
    枚举类型
    结构体
    第一个随笔
  • 原文地址:https://www.cnblogs.com/mydesky2012/p/5034975.html
Copyright © 2020-2023  润新知