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; } }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/66591.html
摘要:雙層迭代法復雜度時間空間思路外層的循環控制每個的起點,內層的循環控制之內的遞增。每當遍歷完一個,就把它記錄到結果中,并更新下一個的起點。這里的技巧是,判斷一個數是否是在內的,只要就行了,即值之差等于下標之差。 Summary Ranges Given a sorted integer array without duplicates, return the summary of it...
摘要:輸入一個排序好的整數數組,輸出數組中連續數字的范圍的數組這是我的解法,不知道有沒有有更好更快的實現 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]. 輸入一個排...
閱讀 1915·2023-04-26 01:56
閱讀 3112·2021-11-18 10:02
閱讀 3049·2021-09-09 11:35
閱讀 1284·2021-09-03 10:28
閱讀 3408·2019-08-29 18:36
閱讀 2846·2019-08-29 17:14
閱讀 833·2019-08-29 16:10
閱讀 1616·2019-08-26 13:45