第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

Python 和 C++ 二維數(shù)組初始化之間。這是什么 ?為什么?

Python 和 C++ 二維數(shù)組初始化之間。這是什么 ?為什么?

LEATH 2023-02-07 10:53:21
機(jī)器人位于 amxn 網(wǎng)格的左上角(在下圖中標(biāo)記為“開始”)。機(jī)器人只能在任何時(shí)間點(diǎn)向下或向右移動(dòng)。機(jī)器人正試圖到達(dá)網(wǎng)格的右下角(在下圖中標(biāo)記為“完成”)。有多少可能的唯一路徑?我想出了解決方案,并用我的母語編程語言 C++ 編寫了代碼。class Solution {public:    int uniquePaths(int m, int n) {        vector<vector<int>> matrix(m, vector<int>(n, 0));        for (int i = 0; i < m; i++) {            matrix[i][0] = 1;        }        for (int j = 0; j < n; j++) {            matrix[0][j] = 1;        }        for(int i = 1; i < m; i++) {            for(int j = 1; j < n; j++) {                matrix[i][j] = matrix[i][j-1] + matrix[i-1][j];                            }        }        return matrix[m-1][n-1];    }};二維向量被初始化為arr[m][n]在學(xué)習(xí) Python 時(shí),我決定也用 Python 來解決它。我遇到了一個(gè)荒謬的問題。這里,arr = [[0 for x in range(n)] for y in range(m)] 我將二維數(shù)組初始化為arr = [[0 for x in range(m)] for y in range(n)] 而且,我得到的錯(cuò)誤列表索引超出范圍。我真的搞砸了從干草中找出這根針,但無論如何我明白了。你能解釋一下為什么即使一切都一樣,行和列之間也會(huì)發(fā)生這些沖突嗎?class Solution:    def uniquePaths(self, m: int, n: int) -> int:        if m == 0 or n == 0:            return 0        arr = [[0 for x in range(n)] for y in range(m)]         for i in range(m):            arr[i][0] = 1        for j in range(n):            arr[0][j] = 1        for i in range(1,m):            for j in range(1,n):                arr[i][j] = arr[i][j-1] + arr[i-1][j]        return arr[m-1][n-1]    下面是題目鏈接供參考:Unique paths-leetcode
查看完整描述

1 回答

?
心有法竹

TA貢獻(xiàn)1866條經(jīng)驗(yàn) 獲得超5個(gè)贊

在你的 C++ 代碼中:

vector<vector<int>> matrix(m, vector<int>(n, 0));

您正在創(chuàng)建一個(gè)向量m向量,每個(gè)向量包含n初始化為 0 的元素。這就像一個(gè)由m行 xn列組成的二維矩陣。

Python 中的等效代碼是:

arr = [[0 for x in range(n)] for y in range(m)]

這是一個(gè)列表理解。對(duì)于具有 C++ 背景的人來說,此語法從后往前看,但列表理解的格式是:

[ expression for item in list if conditional ]

0因此,在您的情況下,對(duì)于范圍內(nèi)的每個(gè)索引,m您都會(huì)創(chuàng)建一個(gè)包含零的內(nèi)部列表n,即mxn矩陣。

這段代碼:

arr = [[0 for x in range(m)] for y in range(n)]

不等同于您的 C++ 代碼。它生成一個(gè)列表n列表,每個(gè)列表都包含m零,即nxm矩陣。因此你得到了錯(cuò)誤。


查看完整回答
反對(duì) 回復(fù) 2023-02-07
  • 1 回答
  • 0 關(guān)注
  • 126 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)