假設,我想創建一個具有以下結構的二維陣列:
[0, 1, 1, 1]
[1, 0, 0, 0]
[1, 0, 0, 0]
為了實作我的目標,首先,我創建了一個初始值為 的二維陣列0:
function createGrid(m: number, n: number): number {
let grid: number[][] = new Array(m).fill(0).map(() => new Array(n).fill(0));
return 0;
};
然后,我將第一行(除了grid[0][0])的值更改為1:
function uniquePaths(m: number, n: number): number {
let grid: number[][] = new Array(m).fill(0).map(() => new Array(n).fill(0));
for (let i = 1; i <= m; i ) {
grid[0][i] = 1;
}
return 0;
};
同樣,我嘗試將第一列(除了grid[0][0])的值更改為1:
function uniquePaths(m: number, n: number): number {
let grid: number[][] = new Array(m).fill(0).map(() => new Array(n).fill(0));
for (let i = 1; i <= m; i ) {
grid[0][i] = 1;
}
for (let i = 1; i <= n; i ) {
grid[i][0] = 1; // <<-- 'Throws error here`
}
return 0;
};
但是,它會引發以下錯誤:
grid[i] is undefined
有人可以解釋一下我在這里缺少什么嗎?
TypeScript Playground 代碼鏈接
uj5u.com熱心網友回復:
有兩個錯誤:
- 你交換了
m,n當你想用1. - 您創建了條件溢位
i <=,您需要i <。
修正版:
function uniquePaths(m: number, n: number): number {
let grid: number[][] = new Array(m).fill(0).map(() => new Array(n).fill(0));
for (let i = 1; i < n; i ) {
grid[0][i] = 1;
}
for (let i = 1; i < m; i ) {
grid[i][0] = 1;
}
console.log(grid);
return 0;
};
uniquePaths(3, 4);
結果:
[[0, 1, 1, 1],
[1, 0, 0, 0],
[1, 0, 0, 0]]
uj5u.com熱心網友回復:
您可以檢查索引并檢查邏輯非值并回傳檢查的編號。
function createGrid(m, n) {
return Array.from(
{ length: m },
(_, i) => Array.from(
{ length: n },
(_, j) => (!i !== !j)
)
);
};
createGrid(3, 4).map(a => console.log(...a))
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/403081.html
標籤:
上一篇:等待方法完成
