Summary Ranges
題目鏈接:https://leetcode.com/problems...
loop兩種寫法:
public class Solution { public ListsummaryRanges(int[] nums) { List result = new ArrayList(); if(nums.length == 0) return result; /* loop invariant: nums[i] != nums[i-1] + 1 */ for(int i = 0; i < nums.length; i++) { int prev = nums[i]; while(i < nums.length - 1 && nums[i] + 1 == nums[i+1]) { i++; } result.add(getRange(prev, nums[i])); } return result; } private String getRange(int i, int j) { if(i == j) return "" + i; return i + "->" + j; } }
public class Solution { public ListsummaryRanges(int[] nums) { List result = new ArrayList(); if(nums.length == 0) return result; int prev = nums[0]; for(int i = 0; i < nums.length; i++) { if(i == nums.length - 1 || nums[i] + 1 != nums[i+1]) { result.add(getRange(prev, nums[i])); if(i != nums.length - 1) prev = nums[i+1]; } } return result; } private String getRange(int i, int j) { if(i == j) return "" + i; return i + "->" + j; } }
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/66591.html
摘要:雙層迭代法復(fù)雜度時間空間思路外層的循環(huán)控制每個的起點(diǎn),內(nèi)層的循環(huán)控制之內(nèi)的遞增。每當(dāng)遍歷完一個,就把它記錄到結(jié)果中,并更新下一個的起點(diǎn)。這里的技巧是,判斷一個數(shù)是否是在內(nèi)的,只要就行了,即值之差等于下標(biāo)之差。 Summary Ranges Given a sorted integer array without duplicates, return the summary of it...
摘要:輸入一個排序好的整數(shù)數(shù)組,輸出數(shù)組中連續(xù)數(shù)字的范圍的數(shù)組這是我的解法,不知道有沒有有更好更快的實(shí)現(xiàn) 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]. 輸入一個排...
閱讀 1951·2023-04-26 01:56
閱讀 3122·2021-11-18 10:02
閱讀 3073·2021-09-09 11:35
閱讀 1305·2021-09-03 10:28
閱讀 3429·2019-08-29 18:36
閱讀 2859·2019-08-29 17:14
閱讀 841·2019-08-29 16:10
閱讀 1624·2019-08-26 13:45