题目描述
题目描述

思路

public List<String> summaryRanges(int[] nums) { List<String> ret = new ArrayList<>(); for (int i = 0; i < nums.length; ) { // 范围头部指针 int low = i; i++; while (i < nums.length && nums[i] == nums[i - 1] + 1) { i++; } // 范围尾部指针 int high = i - 1; ret.add(addRet(nums[low], nums[high], low, high)); } return ret;}/** * 获取本次遍历结果 * * @param lowNum 左区间对应的数 * @param highNum 右区间对应的数 * @param low 左区间 * @param high 右区间 * @return 执行结果 */private String addRet(int lowNum, int highNum, int low, int high) { StringBuilder temp = new StringBuilder(Integer.toString(lowNum)); if (low < high) { temp.append("->"); temp.append(highNum); } return temp.toString();}