LeetCode329. Longest Increasing Path in a Matrix

題目

329. Longest Increasing Path in a Matrix

題目描述

給定一個整數(shù)矩陣镜悉,找出最長遞增路徑的長度。
對于每個單元格医瘫,你可以往上侣肄,下,左登下,右四個方向移動茫孔。 你不能在對角線方向上移動或移動到邊界外(即不允許環(huán)繞)叮喳。
示例 1:
輸入: nums =
[
[9,9,4],
[6,6,8],
[2,1,1]
]
輸出: 4
解釋: 最長遞增路徑為 [1, 2, 6, 9]被芳。
示例 2:
輸入: nums =
[
[3,4,5],
[3,2,6],
[2,2,1]
]
輸出: 4
解釋: 最長遞增路徑是 [3, 4, 5, 6]。注意不允許在對角線方向上移動馍悟。

題解

題目意思是查找最長遞增路徑畔濒,簡單點就是直接對每個點深搜能成型的遞增路徑然后比較一下,但是這樣會直接超時锣咒, 然后我做了一個剪枝因為是最長遞增路徑侵状,所以對每個點都有一條最長的邊赞弥,我們只要保存每個已搜點的最長長度,然后在之后搜索到改點的時候直接返回改點的最長長度趣兄。

代碼

    int max;
    int[][] mappp;

    public int longestIncreasingPath(int[][] matrix) {

        max = 0;
        if (matrix.length == 0)
            return 0;
        mappp = new int[matrix.length][matrix[0].length];
        for (int i = 0; i < matrix.length; i++) {
            for (int j = 0; j < matrix[0].length; j++) {
                if (mappp[i][j] == 0) {
                    max = Math.max(max, dfs(i, j, 1, matrix, -1));
                }
            }
        }
        return max;
    }

    public int dfs(int i, int j, int length, int[][] map, int num) {
        if (i >= 0 && i < map.length && j >= 0 && j < map[0].length && map[i][j] > num) {
            if (mappp[i][j] != 0)
                return mappp[i][j] + length;
            int maxx = 0;
            int a = dfs(i - 1, j, length + 1, map, map[i][j]);
            int b = dfs(i + 1, j, length + 1, map, map[i][j]);
            int c = dfs(i, j - 1, length + 1, map, map[i][j]);
            int d = dfs(i, j + 1, length + 1, map, map[i][j]);
            maxx = Math.max(a, Math.max(b, Math.max(c, d)));
            mappp[i][j] = maxx - length;
            return maxx;
        }

        return length - 1;
    }

提交結(jié)果

image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末绽左,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子艇潭,更是在濱河造成了極大的恐慌拼窥,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,042評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蹋凝,死亡現(xiàn)場離奇詭異鲁纠,居然都是意外死亡,警方通過查閱死者的電腦和手機鳍寂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評論 2 384
  • 文/潘曉璐 我一進店門改含,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人迄汛,你說我怎么就攤上這事捍壤。” “怎么了鞍爱?”我有些...
    開封第一講書人閱讀 156,674評論 0 345
  • 文/不壞的土叔 我叫張陵白群,是天一觀的道長。 經(jīng)常有香客問我硬霍,道長帜慢,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,340評論 1 283
  • 正文 為了忘掉前任唯卖,我火速辦了婚禮粱玲,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘拜轨。我一直安慰自己抽减,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,404評論 5 384
  • 文/花漫 我一把揭開白布橄碾。 她就那樣靜靜地躺著卵沉,像睡著了一般。 火紅的嫁衣襯著肌膚如雪法牲。 梳的紋絲不亂的頭發(fā)上史汗,一...
    開封第一講書人閱讀 49,749評論 1 289
  • 那天,我揣著相機與錄音拒垃,去河邊找鬼停撞。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的戈毒。 我是一名探鬼主播艰猬,決...
    沈念sama閱讀 38,902評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼埋市!你這毒婦竟也來了冠桃?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,662評論 0 266
  • 序言:老撾萬榮一對情侶失蹤道宅,失蹤者是張志新(化名)和其女友劉穎腊满,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體培己,經(jīng)...
    沈念sama閱讀 44,110評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡碳蛋,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了省咨。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片肃弟。...
    茶點故事閱讀 38,577評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖零蓉,靈堂內(nèi)的尸體忽然破棺而出笤受,到底是詐尸還是另有隱情,我是刑警寧澤敌蜂,帶...
    沈念sama閱讀 34,258評論 4 328
  • 正文 年R本政府宣布箩兽,位于F島的核電站,受9級特大地震影響章喉,放射性物質(zhì)發(fā)生泄漏汗贫。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,848評論 3 312
  • 文/蒙蒙 一秸脱、第九天 我趴在偏房一處隱蔽的房頂上張望落包。 院中可真熱鬧,春花似錦摊唇、人聲如沸咐蝇。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽有序。三九已至,卻和暖如春岛请,著一層夾襖步出監(jiān)牢的瞬間旭寿,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評論 1 264
  • 我被黑心中介騙來泰國打工髓需, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留许师,地道東北人。 一個月前我還...
    沈念sama閱讀 46,271評論 2 360
  • 正文 我出身青樓僚匆,卻偏偏與公主長得像微渠,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子咧擂,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,452評論 2 348

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