118、119 pascal's triangle I、II---Array-LeetCode
来源:互联网 发布:微创软件 编辑:程序博客网 时间:2024/05/18 01:10
118 pascal's triangle I---Array-LeetCode
找规律 a = b + c。
class Solution {public: vector<vector<int>> generate(int numRows) { vector<vector<int>> ret(numRows); // 共有numRows层 for(int layer = 0; layer < numRows; ++layer) { ret[layer].resize(layer + 1); // 每层有layer个元素 int sz = ret[layer].size(); // 同上 ret[layer][0] = ret[layer][sz - 1] = 1; // 每层首尾为1 for(int i = 1; i < sz - 1; ++i) // 遍历每层(除去首尾元素) { // if(layer >= 1) // 下标layer - 1不可能越界,因为第一行i<size - 1不成立 ret[layer][i] = ret[layer - 1][i - 1] + ret[layer - 1][i]; } } return ret; }};
119 pascal's triangle II---Array-LeetCode
只有o(k)空间,不能新建数组外的空间。
由于公式ret[i] = ret[i - 1] + ret[i]; 故每个数需要其前一个下标的值 与 自己下标的值共同计算得出
故为避免 前一个下标的值被覆盖(不是原值)(如由 121 会算出为1341),需要倒序遍历(结果为1331)。
class Solution {public: vector<int> getRow(int rowIndex) { vector<int> ret(rowIndex + 1); for(int layer = 0; layer < rowIndex + 1; ++layer) // 0 1 2 3层 { ret[0] = ret[layer] = 1; // 首尾元素为1 // 或者vector<int> ret(rowIndex + 1, 1); // 全部元素都置1,由倒序遍历决定从倒数第几个数开始赋新值// if(layer >= 1) // 下标layer - 1 < 0 时,i >= 1不会成立,不需要下标越界判断// { for(int i = layer - 1; i >= 1; --i) // 因为只有o(k)空间,从前向后的话值会被覆盖。 { ret[i] = ret[i - 1] + ret[i]; } // } } return ret; }};
0 0
- 118、119 pascal's triangle I、II---Array-LeetCode
- leetcode 119 Pascal's Triangle II(array)
- 【leetcode】Array—— Pascal's Triangle and Pascal's Triangle II(118/119)
- leetcode-118&119Pascal's Triangle I & II
- <LeetCode OJ> 118 / 119 Pascal's Triangle(I / II)
- LeetCode[Array]: Pascal's Triangle II
- [leetcode][array] Pascal's Triangle II
- LeetCode-Array-119. Pascal's Triangle II
- LeetCode.118(119) Pascal's Triangle && II
- [Leetcode] Pascal's Triangle I | II
- LeetCode - Pascal's Triangle I && II
- [leetcode题后感]Pascal‘s Triangle I II
- leetcode-Pascal's Triangle(I、II)
- LeetCode 118, 119. Pascal's Triangle i, ii
- leetcode -day13 Valid Palindrome & Triangle & Pascal's Triangle I II
- Array Pascal's Triangle II
- [Array]Pascal's Triangle II
- [Leetcode 118 and 119, Easy] Pascal's Triangle (I and II)
- Laravel框架学习笔记001
- ubuntu14.04+cuda7.5+caffe+cudnn7.5+anaconda+opencv 2.4.9系统整合(2016.12.3)
- 电话号码转化为联系人姓名
- Selenium2+java+Eclipse-简单对象定位
- 使用C#把发表的时间改为几个月,几天前,几小时前,几分钟前,或几秒前
- 118、119 pascal's triangle I、II---Array-LeetCode
- 游戏引擎觅真谛
- RecyclerView
- SDL_SetEventFilter函数
- 【NOIP2017】李电下棋
- unity 编译Apk报错
- 算法训练 删除数组零元素
- 1000 a+b
- java+spring+maven用JUnit单元测试报错Failed to load ApplicationContext