1. 程式人生 > >lintcode:不同的路徑—解析

lintcode:不同的路徑—解析

給出 m = 3 和 n = 3, 返回 6.
給出 m = 4 和 n = 5, 返回 35.

分析:

思路:經過每個點的路徑總數是,由從上邊和左邊的路徑總和。把所有點看成一個二維陣列,每個陣列的點的值就是經過該點的可能路徑條數,這樣經過a[m-1][n-1]的點(就是最後一個點)的路徑條數就是所求解。

畫圖:陣列點的值代表經過該點的可能路徑條數。

 

拿3*3舉例子,生成一個a[3][3]的陣列。因為規則,只能向下或向右移動,因此經過a[0][1]點的路徑只能是從a[0][0]的點來的,只有一種情況,把陣列a[0][1]的值賦為1,同理a[0][2],a[1][0],a[2][0]值為1。a[1][1]的值就是a[0][1]+a[1][0]。這樣,按行遍歷整個陣列, a[i][j]=a[i-1][j]+a[i][j-1],遍歷到最後,a[m-1][n-1]的值即為所求解。

附程式:

public int uniquePaths(int m, int n) {
        // write your code here 
        int a[][] = new int[m][n];
        for(int i=0;i<m;i++){
            a[i][0]=1;
        }
        for(int i=0;i<n;i++){
            a[0][i]=1;
        }
        for(int i=1;i<m;i++){
            for(int j=1;j<n;j++){
                a[i][j]=a[i-1][j]+a[i][j-1];
            }
        }
        return a[m-1][n-1];

相關推薦

lintcode不同路徑解析

給出 m = 3 和 n = 3, 返回 6. 給出 m = 4 和 n = 5, 返回 35. 分析: 思路:經過每個點的路徑總數是,由從上邊和左邊的路徑總和。把所有點看成一個二維陣列,每個陣列的點的值就是經過該點的可能路徑條數,這樣經過a[m-1][n-1]的點(就是最後一個點)的路徑條數就是所求解

leetcode不同路徑II

一個機器人位於一個 m x n 網格的左上角 (起始點在下圖中標記為“Start” )。 機器人每次只能向下或者向右移動一步。機器人試圖達到網格的右下角(在下圖中標記為“Finish”)。 現在考慮網格中有障礙物。那麼從左上角到右下角將會有多少條不同的路徑? 網

Leetcode 63不同路徑 II(最詳細的解法!!!)

一個機器人位於一個 m x n 網格的左上角 (起始點在下圖中標記為“Start” )。 機器人每次只能向下或者向右移動一步。機器人試圖達到網格的右下角(在下圖中標記為“Finish”)。 現在考慮網格中有障礙物。那麼從左上角到右下角將會有多少條不同的路徑?

lintcode不同的二叉查詢樹

卡特蘭數 其前幾項為 : 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 9694845

Leetcode 62不同路徑(最詳細的解法!!!)

一個機器人位於一個 m x n 網格的左上角 (起始點在下圖中標記為“Start” )。 機器人每次只能向下或者向右移動一步。機器人試圖達到網格的右下角(在下圖中標記為“Finish”)。 問總共有多少條不同的路徑? 例如,上圖是一個7 x 3 的

LintCode 115. 不同路徑 II

ntc left pan ont flag 有一個 write 不同的 vector "不同的路徑" 的跟進問題: 現在考慮網格中有障礙物,那樣將會有多少條不同的路徑? 網格中的障礙和空位置分別用 1 和 0 來表示。 註意事項 m 和 n 均不超過100 樣例

LintCode 114. 不同路徑

tro 右下角 span lint body nbsp 機器 urn ntc 有一個機器人的位於一個 m × n 個網格左上角。 機器人每一時刻只能向下或者向右移動一步。機器人試圖達到網格的右下角。 問有多少條不同的路徑? 樣例 給出 m = 3 和 n = 3, 返

【一次過】Lintcode 114. 不同路徑

有一個機器人的位於一個 m × n 個網格左上角。 機器人每一時刻只能向下或者向右移動一步。機器人試圖達到網格的右下角。 問有多少條不同的路徑? 樣例 給出 m = 3 和 n = 3, 返回 

lintcode(115)不同路徑2

問題描述: "不同的路徑" 的跟進問題: 現在考慮網格中有障礙物,那樣將會有多少條不同的路徑? 網格中的障礙和空位置分別用 1 和 0 來表示。 示例: 如下所示在3x3的網格中有一個障礙物: [ [0,0,0], [0,1,0], [0,0,0]

CCF CSP 程式設計題目和解答-----試題名稱路徑解析 -------201604-3

  在作業系統中,資料通常以檔案的形式儲存在檔案系統中。檔案系統一般採用層次化的組織形式,由目錄(或者資料夾)和檔案構成,形成一棵樹的形狀。檔案有內容,用於儲存資料。目錄是容器,可包含檔案或其他目錄。同一個目錄下的所有檔案和目錄的名字各不相同,不同目錄下可以有名字相同的檔案或目錄。   為了指定檔案系統中的某

ERROR使用dom4j解析xml檔案遇到中文路徑問題

在使用dom4j解析xml檔案的時候,使用以下程式碼來解析含有中文的路徑的時候,會報錯: SAXReader reader=new SAXReader(); Documentdom=reader.read(xmlFile); Element root =dom.getRo

LintCodeM-不同的二叉查詢樹個數

給出 n,問由 1...n 為節點組成的不同的二叉查詢樹有多少種? 您在真實的面試中是否遇到過這個題?  Yes 樣例 給出n = 3,有5種不同形態的二叉查詢樹: 1 3 3 2 1 \

Lintcode 115.不同路徑2

"不同的路徑" 的跟進問題: 現在考慮網格中有障礙物,那樣將會有多少條不同的路徑? 網格中的障礙和空位置分別用 1 和 0 來表示。  注意事項 m 和 n 均不超過100 您在真實

題目 不同路徑 II

Airbnb Alibaba Amazon Apple Baidu Bloomberg Cisco Dropbox Ebay Facebook Google Hulu Intel Linkedin Microsoft NetEase Nvidia Oracle Pinterest Snapc

不同路徑-LintCode

描述: 有一個機器人的位於一個 m × n 個網格左上角。 機器人每一時刻只能向下或者向右移動一步。機器人試圖達到網格的右下角。 問有多少條不同的路徑? 注意事項:n和m均不超過100 樣例:

【一次過】【座標型】Lintcode 115. 不同路徑 II

"不同的路徑" 的跟進問題: 現在考慮網格中有障礙物,那樣將會有多少條不同的路徑? 網格中的障礙和空位置分別用 1 和 0 來表示。 樣例 如下所示在3x3的網格中有一個障礙物: [ [0

LintCode UniquePaths 不同路徑

中文描述: 有一個機器人的位於一個M×N個網格左上角(下圖中標記為’Start’)。 機器人每一時刻只能向下或者向右移動一步。機器人試圖達到網格的右下角(下圖中標記為’Finish’)。 問有多少條不同的路徑? start 1.2 1.

LintCode785. 最大權值和路徑(動態規劃)

思路:這是一道典型的動態規劃題,思路類似於揹包問題,dp中每個元素的值分別是來自於該位置上方和該位置右邊的較大的一個值,新建dp矩陣,int[][] dp=new int[row+1][col+1]。注意是從右上角開始到左下角結束,狀態轉移方程為 dp[i][j]=max(d

DOM的概念和簡單應用使用DOM解析XML數據

rop 手機 實例 des dna 文檔轉換 .get val oms 概念:DOM是Document Object Model的簡稱,即文檔數據模型。 Oracle公司提供了JAXP(Java API for XML Processing)來解析XML。JAXP會把XML

【學習筆記】關於DOM4J使用DOM4J解析XML文檔

文本 class 中產 獲取 ber exce int() logs hone 一、概述 DOM4J是一個易用的、開源的庫,用於XML、XPath和XSLT中。采用了Java集合框架並完全支持DOM、SAX、和JAXP。 DOM4J最大的特色是使用大量的接口,主要接口都在o