国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【LeetCode:64. 最小路徑和 | 暴力遞歸=>記憶化搜索=>動(dòng)態(tài)規(guī)劃 】

這篇具有很好參考價(jià)值的文章主要介紹了【LeetCode:64. 最小路徑和 | 暴力遞歸=>記憶化搜索=>動(dòng)態(tài)規(guī)劃 】。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

【LeetCode:64. 最小路徑和 | 暴力遞歸=>記憶化搜索=>動(dòng)態(tài)規(guī)劃 】

?? 算法題 ??

?? 算法刷題專欄 | 面試必備算法 | 面試高頻算法 ??
?? 越難的東西,越要努力堅(jiān)持,因?yàn)樗哂泻芨叩膬r(jià)值,算法就是這樣?
?? 作者簡(jiǎn)介:碩風(fēng)和煒,CSDN-Java領(lǐng)域新星創(chuàng)作者??,保研|國(guó)家獎(jiǎng)學(xué)金|高中學(xué)習(xí)JAVA|大學(xué)完善JAVA開發(fā)技術(shù)棧|面試刷題|面經(jīng)八股文|經(jīng)驗(yàn)分享|好用的網(wǎng)站工具分享??????
?? 恭喜你發(fā)現(xiàn)一枚寶藏博主,趕快收入囊中吧??
?? 人生如棋,我愿為卒,行動(dòng)雖慢,可誰(shuí)曾見我后退一步?????

?? 算法題 ??

【LeetCode:64. 最小路徑和 | 暴力遞歸=>記憶化搜索=>動(dòng)態(tài)規(guī)劃 】

?? 知識(shí)回顧

大家在學(xué)習(xí)這道題目之前,可以先去看一下我之前寫過(guò)的一篇和這個(gè)題目類似有類似求解思路的博客,再看這個(gè)題目就更容易理解了。
博客的地址放到這里了,可以先去學(xué)習(xí)一下這到題目。

  • 【LeetCode: 62. 不同路徑 | 暴力遞歸=>記憶化搜索=>動(dòng)態(tài)規(guī)劃 】

?? 題目鏈接

  • 64. 最小路徑和

? 題目描述

給定一個(gè)包含非負(fù)整數(shù)的 m x n 網(wǎng)格 grid ,請(qǐng)找出一條從左上角到右下角的路徑,使得路徑上的數(shù)字總和為最小。

說(shuō)明:每次只能向下或者向右移動(dòng)一步。

示例 1:
【LeetCode:64. 最小路徑和 | 暴力遞歸=>記憶化搜索=>動(dòng)態(tài)規(guī)劃 】

輸入:grid = [[1,3,1],[1,5,1],[4,2,1]]
輸出:7
解釋:因?yàn)槁窂?1→3→1→1→1 的總和最小。

示例 2:

輸入:grid = [[1,2,3],[4,5,6]]
輸出:12

提示:

m == grid.length
n == grid[i].length
1 <= m, n <= 200
0 <= grid[i][j] <= 100

?? 求解思路&實(shí)現(xiàn)代碼&運(yùn)行結(jié)果


? 暴力法-DFS

?? 求解思路
  1. 這道題目的求解思路比較簡(jiǎn)單,從左上角0,0位置出發(fā),每次只能向右走或者向下走,到右下角m-1,n-1的路徑最小和是多少。
  2. 那么我們直接通過(guò)遞歸-DFS求解即可。
?? 實(shí)現(xiàn)代碼
class Solution {
    public int minPathSum(int[][] grid) {
        int m=grid.length,n=grid[0].length;
        return process(0,0,m,n,grid);
    }

    public int process(int x,int y,int m,int n,int[][] grid){
        if(x==m-1&&y==n-1){
            return grid[x][y];
        }
        if(x>=m||y>=n){
            return Integer.MAX_VALUE;
        }
        return Math.min(process(x+1,y,m,n,grid),process(x,y+1,m,n,grid))+grid[x][y];
    }
}
?? 運(yùn)行結(jié)果

時(shí)間超限了,不要緊張,我們來(lái)繼續(xù)優(yōu)化它!
【LeetCode:64. 最小路徑和 | 暴力遞歸=>記憶化搜索=>動(dòng)態(tài)規(guī)劃 】


? 記憶化搜索

?? 求解思路
  1. 因?yàn)樵谶f歸的過(guò)程中,會(huì)重復(fù)的出現(xiàn)一些多次計(jì)算的結(jié)果,我們通過(guò)開辟一個(gè)數(shù)組,將結(jié)果提前緩存下來(lái),算過(guò)的直接返回,避免重復(fù)計(jì)算,通過(guò)空間來(lái)去換我們的時(shí)間。
?? 實(shí)現(xiàn)代碼
class Solution {

    private int[][] dp;

    public int minPathSum(int[][] grid) {
        int m=grid.length,n=grid[0].length;
        dp=new int[m][n];
        for(int i=0;i<m;i++) Arrays.fill(dp[i],-1);
        return process(0,0,m,n,grid);
    }

    public int process(int x,int y,int m,int n,int[][] grid){
        if(x==m-1&&y==n-1){
            return grid[x][y];
        }
        if(x>=m||y>=n){
            return Integer.MAX_VALUE;
        }
        if(dp[x][y]!=-1) return dp[x][y];
        return dp[x][y]=Math.min(process(x+1,y,m,n,grid),process(x,y+1,m,n,grid))+grid[x][y];
    }
}
?? 運(yùn)行結(jié)果

我們發(fā)現(xiàn),通過(guò)加一個(gè)緩存表,時(shí)間復(fù)雜度發(fā)生了翻天覆地的變化,真是不可思議!
【LeetCode:64. 最小路徑和 | 暴力遞歸=>記憶化搜索=>動(dòng)態(tài)規(guī)劃 】


? 動(dòng)態(tài)規(guī)劃

?? 求解思路
  1. 有了遞歸,有了記憶化搜索,接下來(lái)就是動(dòng)態(tài)規(guī)劃了,直接上手。
?? 實(shí)現(xiàn)代碼
class Solution {

    private int[][] dp;

    public int minPathSum(int[][] grid) {
        int m=grid.length,n=grid[0].length;
        dp=new int[m+1][n+1];
        dp[m-1][n-1]=grid[m-1][n-1];
        for(int x=m-2;x>=0;x--){
            dp[x][n-1]=dp[x+1][n-1]+grid[x][n-1];
        }
        for(int y=n-2;y>=0;y--){
            dp[m-1][y]=dp[m-1][y+1]+grid[m-1][y];
        }
        for(int x=m-2;x>=0;x--){
            for(int y=n-2;y>=0;y--){
                dp[x][y]=Math.min(dp[x+1][y],dp[x][y+1])+grid[x][y];
            }
        }
        return dp[0][0];
    }
}
?? 運(yùn)行結(jié)果

搞定!
【LeetCode:64. 最小路徑和 | 暴力遞歸=>記憶化搜索=>動(dòng)態(tài)規(guī)劃 】


?? 共勉

最后,我想和大家分享一句一直激勵(lì)我的座右銘,希望可以與大家共勉!

【LeetCode:64. 最小路徑和 | 暴力遞歸=>記憶化搜索=>動(dòng)態(tài)規(guī)劃 】

【LeetCode:64. 最小路徑和 | 暴力遞歸=>記憶化搜索=>動(dòng)態(tài)規(guī)劃 】文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-453561.html

到了這里,關(guān)于【LeetCode:64. 最小路徑和 | 暴力遞歸=>記憶化搜索=>動(dòng)態(tài)規(guī)劃 】的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包