成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

[Leetcode] Summary Ranges 統(tǒng)計(jì)區(qū)間

Youngdze / 1655人閱讀

摘要:雙層迭代法復(fù)雜度時(shí)間空間思路外層的循環(huán)控制每個(gè)的起點(diǎn),內(nèi)層的循環(huán)控制之內(nèi)的遞增。每當(dāng)遍歷完一個(gè),就把它記錄到結(jié)果中,并更新下一個(gè)的起點(diǎn)。這里的技巧是,判斷一個(gè)數(shù)是否是在內(nèi)的,只要就行了,即值之差等于下標(biāo)之差。

Summary Ranges

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

雙層迭代法 復(fù)雜度

時(shí)間 O(N) 空間 O(N)

思路

外層的while循環(huán)控制每個(gè)range的起點(diǎn),內(nèi)層的while循環(huán)控制range之內(nèi)的遞增。每當(dāng)遍歷完一個(gè)range,就把它記錄到結(jié)果中,并更新下一個(gè)range的起點(diǎn)。這里的技巧是,判斷一個(gè)數(shù)是否是在range內(nèi)的,只要nums[start + range] - nums[start] = range就行了,即值之差等于下標(biāo)之差。

代碼
public class Solution {
    public List summaryRanges(int[] nums) {
        List res = new LinkedList();
        if(nums.length == 0) return res;
        StringBuilder tmp = new StringBuilder();
        int start = 0;
        while(start < nums.length){
            int range = 1;
            // 遍歷當(dāng)前range內(nèi)的所有數(shù)
            while(start + range < nums.length && (nums[start + range] - nums[start]) == range){
                range++;
            }
            // 遍歷完了當(dāng)前range,將其加入結(jié)果中
            tmp.append(nums[start]);
            if(range > 1){
                tmp.append("->");
                tmp.append(nums[start+range-1]);
            }
            res.add(tmp.toString());
            tmp = new StringBuilder();
            // 更新下一個(gè)range的起點(diǎn)
            start = start + range;
        }
        return res;
    }
}

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/64553.html

相關(guān)文章

  • Leetcode刷題]Summary Ranges —— javascript

    摘要:輸入一個(gè)排序好的整數(shù)數(shù)組,輸出數(shù)組中連續(xù)數(shù)字的范圍的數(shù)組這是我的解法,不知道有沒(méi)有有更好更快的實(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]. 輸入一個(gè)排...

    Doyle 評(píng)論0 收藏0
  • [Leetcode] Missing Ranges 缺失區(qū)間

    摘要:想象一下假設(shè)數(shù)組前有一段連續(xù)的負(fù)無(wú)窮到,數(shù)組后有一段到正無(wú)窮,這樣是等價(jià)與上下界的。最后循環(huán)到停止,當(dāng)下標(biāo)為時(shí),我們將當(dāng)前指針指向,并判斷和數(shù)組末尾是否能構(gòu)成最后一個(gè)區(qū)間。 Missing Ranges Given a sorted integer array where the range of elements are [lower, upper] inclusive, retu...

    Gilbertat 評(píng)論0 收藏0
  • Summary Ranges

    Summary Ranges 題目鏈接:https://leetcode.com/problems... loop兩種寫(xiě)法: public class Solution { public List summaryRanges(int[] nums) { List result = new ArrayList(); if(nums.length == 0) r...

    yintaolaowanzi 評(píng)論0 收藏0
  • leetcode327. Count of Range Sum

    摘要:接著計(jì)算所有子數(shù)組中元素的和,并判斷是否位于數(shù)值區(qū)間內(nèi)。因此,在對(duì)左右子數(shù)組進(jìn)行排序后,以左子數(shù)組中的每一位作為開(kāi)頭,在右子數(shù)組中找到滿足和區(qū)間的第一個(gè)值,和超過(guò)區(qū)間的第一個(gè)值。則二者的差即為橫穿左右的滿足條件的子數(shù)組個(gè)數(shù)。 題目要求 Given an integer array nums, return the number of range sums that lie in [lo...

    miya 評(píng)論0 收藏0
  • K Nearest Neighbor

    摘要:而產(chǎn)生這種現(xiàn)象的唯一遠(yuǎn)遠(yuǎn),僅僅是因?yàn)轱w行??屠锍虜?shù)遠(yuǎn)大于其他特征值。但海倫認(rèn)為這三種特征是同等重要的,因此作為三個(gè)等權(quán)重的特征之一,飛行??屠锍虜?shù)并不應(yīng)該如此嚴(yán)重的影響到計(jì)算結(jié)果。 一、KNN概述 簡(jiǎn)單的說(shuō),k-近鄰算法采用測(cè)量不同特征值之間的距離方法進(jìn)行分類(lèi)。 優(yōu)點(diǎn):精度高、對(duì)異常值不敏感、無(wú)數(shù)據(jù)輸入假定 缺點(diǎn):計(jì)算復(fù)雜度高、空間復(fù)雜度高 適用數(shù)據(jù)范圍:數(shù)值型和標(biāo)稱型 1.1 工...

    zzbo 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<