給定乙個非負索引 k,其中 k ≤ 33,返回楊輝三角的第 k 行。
在楊輝三角中,每個數是它左上方和右上方的數的和。
示例:輸入: 3
輸出: [1,3,3,1]
分析:題目中要求用o(k)的空間,要把原來二維的vector壓縮到一維,通過觀察規律可以發現,第n行就有n個元素,且行首行尾均為1,中間的n-2項進行迭代,可以不停的更新當前的一維陣列,但要注意計算的中間結果按層一次性更新而不是算乙個更新乙個,保證後面的計算用到的數是上一行的,**如下
public:
vectorgetrow(int rowindex)
// 迭代rowindex次
if(rowindex < 2) return v;
// i = 2對應楊輝三角的第三層開始
119 楊輝三角 II
略。注意是用o k 的空間完成,而不要求時間複雜度 時間複雜度沒法再小了應該只能是o n 2 11 1121 1331 這個二維 從左往右表示實際題需的row陣列 從上往下表示依據時間進展,不同時刻row陣列的樣子。每次形成row陣列時,應該從最右邊的1開始生成,向左,終止於最左邊的1。而不是相反的...
119 楊輝三角 II
給定乙個非負索引k,其中k 33,返回楊輝三角的第 k 行。在楊輝三角中,每個數是它左上方和右上方的數的和。示例 輸入 3輸出 1 3,3,1 高階 你可以優化你的演算法到 o k 空間複雜度嗎?前面2行直接生成,第三行 nowindex 2 在上乙個結果,即 1,1 的倒數第二個位置插入2即可。第...
119 楊輝三角 II
給定乙個非負索引 k,其中 k 33,返回楊輝三角的第 k 行。在楊輝三角中,每個數是它左上方和右上方的數的和。示例 輸入 3 輸出 1,3,3,1 解法1 第n行第k列的值,可以通過通項公式 n 1 k 1 n k 計算得到 對其進行化簡 n 1 n 2 n k k 1 直接求階乘注意是否超出型別...