LeetCode刷題-楊輝三角II

前言說明

算法學(xué)習(xí)笋粟,日常刷題記錄震檩。

題目連接

楊輝三角II

題目內(nèi)容

給定一個非負(fù)索引k,其中k ≤ 33懂诗,返回楊輝三角的第k行蜂嗽。

楊輝三角.gif

在楊輝三角中,每個數(shù)是它左上方和右上方的數(shù)的和殃恒。

示例:

輸入: 3

輸出: [1,3,3,1]

進(jìn)階:

你可以優(yōu)化你的算法到O(k)空間復(fù)雜度嗎植旧?

分析過程

前面已經(jīng)寫了另一道楊輝三角的解答方法,請看文章:楊輝三角

前面一道的楊輝三角是返回楊輝三角的前numRows行离唐,而這一道是返回楊輝三角的第k行病附。

注意:這里的k是索引k,輸入3亥鬓,輸出的是[1,3,3,1]胖喳,從圖中可以看出這是第4行,所以這里的k是從0開始的贮竟,而不是從1開始丽焊。

那我們先直接復(fù)用前面那道題的代碼,取第k行的元素咕别,代碼如下:

class Solution {
    public List<Integer> getRow(int rowIndex) {
        // 定義楊輝三角列表
        List<List<Integer>> dataList = new ArrayList<>();

        // 構(gòu)造楊輝三角技健,每次構(gòu)造一行,這里的rowIndex要加1惰拱,因為從0開始算的
        for (int i = 0; i < rowIndex + 1; ++i) {
            // 定義楊輝三角單行列表
            List<Integer> list = new ArrayList<>();

            // 第一列
            list.add(1);

            if (i > 0) {
                // 第一行之后
                // 獲取上一行的結(jié)果
                List<Integer> listTemp = dataList.get(i - 1);

                // 遍歷上一行的結(jié)果雌贱,從第二列到最后一列
                for (int j = 1; j < listTemp.size(); ++j) {
                    // 若不是第一列和最后一列,第n行第m列等于上一行第m-1列+第m列
                    list.add(listTemp.get(j - 1) + listTemp.get(j));
                }

                // 最后一列
                list.add(1);

                dataList.add(list);
            } else {
                // 第一行
                dataList.add(list);
            }
        }

        // 取第rowIndex行的元素返回
        return dataList.get(rowIndex);
    }
}

執(zhí)行用時3ms偿短,時間擊敗43.74%的用戶欣孤,內(nèi)存消耗36.4MB,空間擊敗15.27%的用戶昔逗。

運行結(jié)果

運行時間和空間不是很理想降传,因為定義了List<List<Integer>>,但是返回的卻是List<Integer>勾怒,這里生成的前k行占用了多余的空間婆排。

其實只申請一個List<Integer>就可以解決声旺,使用動態(tài)規(guī)劃,用上一次的結(jié)果計算下一次的結(jié)果段只,因為楊輝三角的第k行是由第k - 1行計算得出的腮猖,第k行第m列 = 第k-1行第m-1列 + 第k-1行第m列。

解答代碼

通過上述分析赞枕,采用動態(tài)規(guī)劃的代碼如下:

class Solution {
    public List<Integer> getRow(int rowIndex) {
        // 動態(tài)規(guī)劃澈缺,用上一次的結(jié)果計算下一次的結(jié)果
        List<Integer> list = new ArrayList<>();

        // 第一列
        list.add(1);

        if (rowIndex == 0) {
            return list;
        }

        // 獲取上一次的結(jié)果
        List<Integer> listTemp = getRow(rowIndex - 1);

        // 遍歷上一次的結(jié)果,從第二列到最后一列
        for (int i = 1; i < listTemp.size(); ++i) {
            // 若不是第一列和最后一列炕婶,第n行第m列等于上一行第m-1列+第m列
            list.add(listTemp.get(i - 1) + listTemp.get(i));
        }

        // 最后一列
        list.add(1);

        return list;
    }
}

提交結(jié)果

執(zhí)行用時1ms谍椅,時間擊敗84.08%的用戶,內(nèi)存消耗36.1MB古话,空間擊敗72.11%的用戶。

運行結(jié)果

原文鏈接

原文鏈接:楊輝三角II

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末锁施,一起剝皮案震驚了整個濱河市陪踩,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌悉抵,老刑警劉巖肩狂,帶你破解...
    沈念sama閱讀 218,607評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異姥饰,居然都是意外死亡傻谁,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評論 3 395
  • 文/潘曉璐 我一進(jìn)店門列粪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來审磁,“玉大人,你說我怎么就攤上這事岂座√伲” “怎么了?”我有些...
    開封第一講書人閱讀 164,960評論 0 355
  • 文/不壞的土叔 我叫張陵费什,是天一觀的道長钾恢。 經(jīng)常有香客問我,道長鸳址,這世上最難降的妖魔是什么瘩蚪? 我笑而不...
    開封第一講書人閱讀 58,750評論 1 294
  • 正文 為了忘掉前任稿黍,我火速辦了婚禮疹瘦,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘巡球。我一直安慰自己拱礁,他們只是感情好琢锋,可當(dāng)我...
    茶點故事閱讀 67,764評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著呢灶,像睡著了一般揉忘。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蜕煌,一...
    開封第一講書人閱讀 51,604評論 1 305
  • 那天玄呛,我揣著相機(jī)與錄音,去河邊找鬼缨睡。 笑死鸟悴,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的奖年。 我是一名探鬼主播细诸,決...
    沈念sama閱讀 40,347評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼陋守!你這毒婦竟也來了震贵?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,253評論 0 276
  • 序言:老撾萬榮一對情侶失蹤水评,失蹤者是張志新(化名)和其女友劉穎猩系,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體中燥,經(jīng)...
    沈念sama閱讀 45,702評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡寇甸,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,893評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了疗涉。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拿霉。...
    茶點故事閱讀 40,015評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖咱扣,靈堂內(nèi)的尸體忽然破棺而出友浸,到底是詐尸還是另有隱情,我是刑警寧澤偏窝,帶...
    沈念sama閱讀 35,734評論 5 346
  • 正文 年R本政府宣布收恢,位于F島的核電站,受9級特大地震影響祭往,放射性物質(zhì)發(fā)生泄漏伦意。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,352評論 3 330
  • 文/蒙蒙 一硼补、第九天 我趴在偏房一處隱蔽的房頂上張望驮肉。 院中可真熱鬧,春花似錦已骇、人聲如沸离钝。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽卵渴。三九已至慧域,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間浪读,已是汗流浹背昔榴。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留碘橘,地道東北人互订。 一個月前我還...
    沈念sama閱讀 48,216評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像痘拆,于是被迫代替她去往敵國和親仰禽。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,969評論 2 355

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