LintCode 最長(zhǎng)上升連續(xù)子序列

題目

給定一個(gè)整數(shù)數(shù)組(下標(biāo)從 0 到 n-1十拣, n 表示整個(gè)數(shù)組的規(guī)模)祭饭,請(qǐng)找出該數(shù)組中的最長(zhǎng)上升連續(xù)子序列图毕。(最長(zhǎng)上升連續(xù)子序列可以定義為從右到左或從左到右的序列惫皱。)

樣例

給定 [5, 4, 2, 1, 3], 其最長(zhǎng)上升連續(xù)子序列(LICS)為 [5, 4, 2, 1], 返回 4.
給定 [5, 1, 2, 3, 4], 其最長(zhǎng)上升連續(xù)子序列(LICS)為 [1, 2, 3, 4], 返回 4.

分析1(普通解法)

最簡(jiǎn)單的思路像樊,遍歷兩遍,正向和反向各一遍旅敷,利用兩個(gè)變量記錄最長(zhǎng)序列的長(zhǎng)度生棍。具體閱讀代碼,就可以知道媳谁。

public class Solution {
    /**
     * @param A an array of Integer
     * @return  an integer
     */
    public int longestIncreasingContinuousSubsequence(int[] A) {
        // Write your code here
        int max=1,count=1;
        if(A.length == 0)
            return A.length;
        for(int i=1;i<A.length;i++)
        {
            while(i<A.length && A[i-1]<A[i])
            {
                i++;
                count++;
            }
            if(count>max)
                max=count;
            else
                count=1;
            count=1;
        }
        
        for(int i=A.length-1;i>0;i--)
        {
            while(i>0 && A[i-1]>A[i])
            {
                i--;
                count++;
            }
            if(count>max)
                max=count;
            else
                count=1;
            count=1;
        }
        
        return max;
    }
}

時(shí)間復(fù)雜度遍歷了數(shù)組兩次涂滴,較慢

分析2(使用隊(duì)列)

引入隊(duì)列可以是思路更清晰友酱,而且我們只要遍歷一遍就可以了
原理是:首先將第一個(gè)元素進(jìn)隊(duì),然后循環(huán)將后面的元素進(jìn)隊(duì)柔纵,如果是遞增的缔杉,就直接進(jìn)隊(duì),直到碰到不是遞增的搁料,記錄下此時(shí)隊(duì)列的大小或详,隊(duì)列的大小就是這個(gè)遞增序列的長(zhǎng)度,然后清空隊(duì)列加缘,繼續(xù)進(jìn)隊(duì)鸭叙,重復(fù)這個(gè)過程,最后留下來(lái)的就是最長(zhǎng)遞增序列的長(zhǎng)度拣宏。

public class Solution {
    /**
     * @param A an array of Integer
     * @return  an integer
     */
    public int longestIncreasingContinuousSubsequence(int[] A) {
        // Write your code here
        if(A.length == 0)
            return 0;
        Queue<Integer> queue = new LinkedList<Integer>();
        queue.offer(A[0]);
        int max=1,count=1;
        for(int i=1;i<A.length;i++)
        {
            if(A[i]<A[i-1])
            {
                count = queue.size();
                if(count>max)
                    max = count;
                queue.clear();
            }
            queue.offer(A[i]);
        }
        count = queue.size();
        if(count>max)
            max = count;
        
        queue.clear();
        
        queue.offer(A[A.length-1]);
        for(int i=A.length-1;i>0;i--)
        {
            if(A[i]>A[i-1])
            {
                count = queue.size();
                if(count>max)
                    max = count;
                queue.clear();
            }
            queue.offer(A[i]);
        }
        
        count = queue.size();
        if(count>max)
            max = count;
        
        return max;
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末沈贝,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子勋乾,更是在濱河造成了極大的恐慌宋下,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,539評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件辑莫,死亡現(xiàn)場(chǎng)離奇詭異学歧,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)各吨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門枝笨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人揭蜒,你說我怎么就攤上這事横浑。” “怎么了屉更?”我有些...
    開封第一講書人閱讀 165,871評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵徙融,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我瑰谜,道長(zhǎng)欺冀,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,963評(píng)論 1 295
  • 正文 為了忘掉前任萨脑,我火速辦了婚禮隐轩,結(jié)果婚禮上砚哗,老公的妹妹穿的比我還像新娘。我一直安慰自己蛛芥,他們只是感情好提鸟,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,984評(píng)論 6 393
  • 文/花漫 我一把揭開白布仅淑。 她就那樣靜靜地躺著,像睡著了一般涯竟。 火紅的嫁衣襯著肌膚如雪赡鲜。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,763評(píng)論 1 307
  • 那天银酬,我揣著相機(jī)與錄音,去河邊找鬼筐钟。 笑死,一個(gè)胖子當(dāng)著我的面吹牛篓冲,可吹牛的內(nèi)容都是我干的李破。 我是一名探鬼主播壹将,決...
    沈念sama閱讀 40,468評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼嗤攻,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了诽俯?” 一聲冷哼從身側(cè)響起妇菱,我...
    開封第一講書人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎暴区,沒想到半個(gè)月后闯团,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,850評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡颜启,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,002評(píng)論 3 338
  • 正文 我和宋清朗相戀三年偷俭,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片缰盏。...
    茶點(diǎn)故事閱讀 40,144評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡涌萤,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出口猜,到底是詐尸還是另有隱情负溪,我是刑警寧澤,帶...
    沈念sama閱讀 35,823評(píng)論 5 346
  • 正文 年R本政府宣布济炎,位于F島的核電站川抡,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜崖堤,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,483評(píng)論 3 331
  • 文/蒙蒙 一侍咱、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧密幔,春花似錦楔脯、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至偎箫,卻和暖如春木柬,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背淹办。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工眉枕, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人娇唯。 一個(gè)月前我還...
    沈念sama閱讀 48,415評(píng)論 3 373
  • 正文 我出身青樓齐遵,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親塔插。 傳聞我的和親對(duì)象是個(gè)殘疾皇子梗摇,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,092評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 給定一個(gè)整數(shù)數(shù)組(下標(biāo)從 0 到 n-1, n 表示整個(gè)數(shù)組的規(guī)模)想许,請(qǐng)找出該數(shù)組中的最長(zhǎng)上升連續(xù)子序列伶授。(最長(zhǎng)上...
    DayDayUpppppp閱讀 221評(píng)論 0 0
  • 版權(quán)聲明:本文為博主原創(chuàng)文章,未經(jīng)博主允許不得轉(zhuǎn)載流纹。 難度:容易 要求: 給定一個(gè)整數(shù)數(shù)組(下標(biāo)從 0 到 n-1...
    柒黍閱讀 368評(píng)論 0 0
  • 給定一個(gè)整數(shù)數(shù)組(下標(biāo)從 0 到 n-1糜烹, n 表示整個(gè)數(shù)組的規(guī)模),請(qǐng)找出該數(shù)組中的最長(zhǎng)上升連續(xù)子序列漱凝。(最長(zhǎng)上...
    Arnold134777閱讀 369評(píng)論 0 0
  • 對(duì)于下面一個(gè)序列: 2疮蹦,1,5茸炒,3愕乎,6,4感论,8,9紊册,7 求其最長(zhǎng)遞增子序列(可以不連續(xù)但順序不可變) 解法一:動(dòng)態(tài)...
    LamyGoGoGo閱讀 1,209評(píng)論 0 0
  • 問題: 給定一個(gè)整數(shù)數(shù)組(下標(biāo)從 0 到 n-1, n 表示整個(gè)數(shù)組的規(guī)模),請(qǐng)找出該數(shù)組中的最長(zhǎng)上升連續(xù)子序列掀亥。...
    留十夜閱讀 844評(píng)論 0 0