LeetCode-118
Links:https://leetcode.com/problems/pascals-triangle/
Given numRows, generate the first numRows of Pascal’s triangle.
For example, given numRows = 5,
Return
1 2 3 4 5 6 7 |
[ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1] ] |
思路:依次赋值,返回即可.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
class Solution { public: vector<vector<int>> generate(int numRows) { vector<vector<int>>nums; for(int i=0;i<numRows;i++) { vector<int>temp; for(int j=0;j<=i;j++) { if(i-1<0 || j-1<0 || j==i) temp.push_back(1); else{ temp.push_back(nums[i-1][j-1]+nums[i-1][j]); } } nums.push_back(move(temp)); } return move(nums); } }; |
在这里学习下C++11标准中的move函数…
C++中有个著名的性能问题:拷贝临时对象。
即:由于存在临时对象的拷贝,导致了额外的多次拷贝构造函数和析构函数的开销。但是如果使用C++的move函数则可以避免这样的开销…
不要不信哦,move可以加快代码的速度,不信去掉试试.
【LeetCode】118. Pascal’s Triangle