日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LeetCode 118 Pascal's Triangle(帕斯卡三角形)(vector)

發(fā)布時(shí)間:2023/12/20 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LeetCode 118 Pascal's Triangle(帕斯卡三角形)(vector) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

翻譯

給定一個(gè)行數(shù)字,生成它的帕斯卡三角形。例如,給定numRows = 5, 返回: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1] ]

原文

Given numRows, generate the first numRows of Pascal's triangle.For example, given numRows = 5, Return[[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1] ]

分析

這道題可能我寫的太不簡(jiǎn)潔了,不過意思算是表達(dá)清楚了。

首先定義pascal,行數(shù)小于1的話就直接返回了。

vector<vector<int>> pascal; if (numRows < 1) return pascal;

然后進(jìn)一步操作,添加一個(gè)值為[1]的vector到pascal里,如果行數(shù)為1此時(shí)就直接返回了。如果不為1就繼續(xù)執(zhí)行下一步。

vector<int> root; root.push_back(1); pascal.push_back(root); if (numRows == 1) return pascal;

看上去和上一步差不多,不過正是借用了上一步中保存的1,這時(shí)候root里面已經(jīng)有兩個(gè)1了。

root.push_back(1); pascal.push_back(root); if (numRows == 2) return pascal;

因?yàn)槲抑饕侵幌氩僮鞯趎行的中間數(shù)字,開頭和結(jié)尾直接設(shè)定成1了。中間部分的話利用上一行的數(shù)據(jù)來生成就好了。

if (numRows > 2) {for (int i = 2; i < numRows; ++i) {vector<int> temp;temp.push_back(1);for (int j = 1; j < pascal[i - 1].size(); ++j) {temp.push_back(pascal[i - 1][j - 1] + pascal[i - 1][j]);}temp.push_back(1);pascal.push_back(temp);}return pascal;}

剛才復(fù)制代碼的時(shí)候發(fā)現(xiàn)我沒去LeetCode提交,突然有點(diǎn)慌上面直接寫的代碼會(huì)不會(huì)有錯(cuò),結(jié)果一提交還對(duì)了。

代碼

class Solution { public:vector<vector<int>> generate(int numRows) {vector<vector<int>> pascal;if (numRows < 1) return pascal;vector<int> root;root.push_back(1);pascal.push_back(root);if (numRows == 1) return pascal;root.push_back(1);pascal.push_back(root);if (numRows == 2) return pascal;if (numRows > 2) {for (int i = 2; i < numRows; ++i) {vector<int> temp;temp.push_back(1);for (int j = 1; j < pascal[i - 1].size(); ++j) {temp.push_back(pascal[i - 1][j - 1] + pascal[i - 1][j]);}temp.push_back(1);pascal.push_back(temp);}return pascal;}} };

Java, updated at 2016/8/26

public class Solution {public List<List<Integer>> generate(int numRows) {List<List<Integer>> pascal = new ArrayList<List<Integer>>();ArrayList<Integer> row = new ArrayList<Integer>();for (int i = 0; i < numRows; i++) {row.add(0, 1);for (int j = 1; j < row.size() - 1; j++)row.set(j, row.get(j) + row.get(j + 1));pascal.add(new ArrayList<Integer>(row));}return pascal;} }

總結(jié)

以上是生活随笔為你收集整理的LeetCode 118 Pascal's Triangle(帕斯卡三角形)(vector)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。