1. 程式人生 > >LeetCode 63 -- 不同路徑 II ( Unique Paths II ) ( C語言版 )

LeetCode 63 -- 不同路徑 II ( Unique Paths II ) ( C語言版 )

題目描述  :

解題思路 : 機器人每次只能向下或者向右走 , 我們可以用一個二維陣列記錄機器人每走到一個位置時 , 所經歷的可能性 , 而當它走到一個位置時所經歷的可能性就是( x-1 , y )和 (x ,y-1 ) 走法之和 , 但是這裡有一個問題就是遇到障礙物是如何計算 

如下圖所示 : 當我們遇到障礙物時就將障礙物座標對應的位置賦0 , 當我們在處理第一行和第一列時 , 會發現只要再第一行或第一列出現了一個障礙物時 , 那麼該障礙物後邊的路將會被封死 , 所以我們只需要將第一行和第一列特殊處理 , 然後再按照不同路徑I 的做法處理即可 : 

    

程式碼如下 : 

int uniquePathsWithObstacles(int** a ,int Row, int Col) {
    //如果第一個位置就是障礙時,就不可能到達終點
    if(a[0][0]==1)
        return 0;
    int n[Row][Col];
    int i=0,j=0;
    //處理第一行
    while(i<Col){
        if(a[0][i]==0){
            n[0][i]=1;
            i++;
        }
        else
            while(i<Col){
                n[0][i]=0;
                i++;
            }
    }
    //處理第一列
    while(j<Row){
        if(a[j][0]==0){
            n[j][0]=1;
            j++;
        }
        else
            while(j<Row){
                n[j][0]=0;
                j++;
            }
    }
    for(i=1;i<Row;i++)
        for(j=1;j<Col;j++){
            if(a[i][j]==1)
                n[i][j]=0;
            else
                n[i][j]=n[i-1][j]+n[i][j-1];
        }
    return n[Row-1][Col-1];
}

相關推薦

LeetCode 63. 不同路徑 II Unique Paths IIC語言

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

LeetCode 63 -- 不同路徑 II ( Unique Paths II ) ( C語言 )

題目描述  : 解題思路 : 機器人每次只能向下或者向右走 , 我們可以用一個二維陣列記錄機器人每走到一個位置時 , 所經歷的可能性 , 而當它走到一個位置時所經歷的可能性就是( x-1 , y )和 (x ,y-1 ) 走法之和 , 但是這裡有一個問題就是遇到障礙

leetcode 63. 不同路徑 II(Unique Paths II)

long 一個 com toc inf http tor ref 試圖 目錄 題目描述: 示例 1: 解法: 題目描述: 一個機器人位於一個 m x n 網格

LeetCode-63. 不同路徑 II

log spa col IT eight pan 使用數組 如果 path 最近英文版的訪問特別慢,轉戰中文吧 和上一題一樣,遞歸會超時 //63 不同路徑2,遞歸解法 int uniquePaths2(vector<vector<int>>&a

leetcode 63. 不同路徑 II

tco images cto return 中間 image 每一個 解釋 遍歷 一個機器人位於一個 m x n 網格的左上角 (起始點在下圖中標記為“Start” )。 機器人每次只能向下或者向右移動一步。機器人試圖達到網格的右下角(在下圖中標記為“Finish”)。 現

[Swift]LeetCode63. 不同路徑 II | Unique Paths II

  A robot is located at the top-left corner of a m x n grid (marked 'Start' in the diagram below). The robot can only move eithe

Leetcode------63. 不同路徑 II

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

LeetCode 63 不同路徑II 動態規劃(自底向上)求解

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

leetcode 63. 不同路徑II

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

leetcode 63 不同路徑 II

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

leetcode 63:不同路徑 II

與leetcode 62類似  使用動態規劃,利用一個二維陣列可解決問題,我的程式碼寫的麻煩了一點兒  可以寫的更簡練 int uniquePathsWithObstacles(std::vector<std::vector<int>>&

Leetcode 63. 不同路徑 II 動態規劃

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

LeetCode---63.不同路徑II(Java實現)

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

LeetCode 62. 不同路徑 Unique PathsC語言

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

62.不同路徑Unique Paths

題目描述 一個機器人位於一個 m x n 網格的左上角 (起始點在下圖中標記為“Start” )。 機器人每次只能向下或者向右移動一步。機器人試圖達到網格的右下角(在下圖中標記為“Finish”)。 問

[Swift Weekly Contest 120]LeetCode980. 不同路徑 III | Unique Paths III

types leet can Dimension || Once col wal clas On a 2-dimensional grid, there are 4 types of squares: 1 represents the starting square.

leetcode 136. 只出現一次的數字 C語言

給定一個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。 說明: 你的演算法應該具有線性時間複雜度。 你可以不使用額外空間來實現嗎? 示例 1: 輸入: [2,2,1] 輸出: 1 示例 2: 輸入: [4,1,2,1

leetcode 21. 合併兩個有序連結串列 C語言

將兩個有序連結串列合併為一個新的有序連結串列並返回。新連結串列是通過拼接給定的兩個連結串列的所有節點組成的。  示例: 輸入:1->2->4, 1->3->4 輸出:1->1->2->3->4->4 可以通過一次遍歷同時掃描

Leetcode】【DP-二維陣列】 63. Unique Paths II / 不同路徑2(帶障礙)

給定一個二維陣列,每格為0/1值,1代表無法通過。求從左上到右下的不同路徑數。只能往右/下走。 Input: [   [0,0,0],   [0,1,0],   [0,0,0] ] Output: 2 Explanation: There is one obstacl

LeetCode 63 _ Unique Paths II 全部不同路徑2

分享 一個數 == sage 路徑 example tps 要求 col Description: A robot is located at the top-left corner of a m x n grid (marked ‘Start‘ in the diagr