对于第2个pascal triangle,通过观察可以发现,其实只需要2个额外的变量来记录,于是就设了个tmp数组。

整体有点DP问题中的滚动数组的感觉。

  1. #include <vector>
  2. #include <iostream>
  3. using namespace std;
  4.  
  5. class Solution {
  6. public:
  7. vector<vector<int> > generate(int numRows) {
  8. vector<vector<int>> res;
  9. if (numRows == ) return res;
  10. for (int i = ; i < numRows; i++)
  11. {
  12. vector<int> v; v.clear();
  13. for (int j = ; j <= i; j++)
  14. {
  15. if (j == || j == i) v.push_back();
  16. if (i> && j > && j < i)
  17. {
  18. v.push_back(res[i - ][j] + res[i - ][j - ]);
  19. }
  20. }
  21. res.push_back(v);
  22. }
  23. return res;///////////忘了返回了,一直找不出错来。
  24. }
  25. vector<int> getRow(int rowIndex) {
  26. vector<int> res(rowIndex+,);
  27. vector<int> tmp(,);
  28. //if (rowIndex == 0) return vector<int>(1,1);
  29. for (int i = ; i <= rowIndex; i++)
  30. {
  31. tmp[] = ; tmp[] = ;//别放错位置。之前放到内层的for里了。
  32. for (int j = ; j <= i; j++)
  33. {
  34. if (j == || j == i)
  35. res[j] = ;
  36. if (j> && j < i)
  37. {
  38. if (j % == )
  39. tmp[] = res[j];
  40. else if (j % == )
  41. tmp[] = res[j];
  42. res[j] += tmp[-j%];
  43. }
  44. }
  45. }
  46. return res;
  47. }
  48. };
  49.  
  50. void printVV(vector<vector<int>> vv)
  51. {
  52. for (int i = ; i < vv.size(); i++)
  53. {
  54. for (int j = ; j < vv[i].size(); j++)
  55. {
  56. cout << vv[i][j] << " ";
  57. }
  58. cout << endl;
  59. }
  60. }
  61. int main()
  62. {
  63. Solution s;
  64. //vector<vector<int>> vv = s.generate(3);
  65. vector<int> v = s.getRow();
  66. for (int i = ; i < v.size(); i++)
  67. {
  68. cout << v[i] << " ";
  69. }
  70. //printVV(vv);
  71. return ;
  72. }

leetcode-pascal triangle I&&II的更多相关文章

  1. leetcode—pascal triangle

    1.题目描述 Given numRows, generate the first numRows of Pascal's triangle.   For example, given numRows ...

  2. LeetCode:Pascal's Triangle I II

    LeetCode:Pascal's Triangle Given numRows, generate the first numRows of Pascal's triangle. For examp ...

  3. LeetCode Single Number I / II / III

    [1]LeetCode 136 Single Number 题意:奇数个数,其中除了一个数只出现一次外,其他数都是成对出现,比如1,2,2,3,3...,求出该单个数. 解法:容易想到异或的性质,两个 ...

  4. [array] leetcode - 40. Combination Sum II - Medium

    leetcode - 40. Combination Sum II - Medium descrition Given a collection of candidate numbers (C) an ...

  5. LeetCode 137. Single Number II(只出现一次的数字 II)

    LeetCode 137. Single Number II(只出现一次的数字 II)

  6. LeetCode:路径总和II【113】

    LeetCode:路径总和II[113] 题目描述 给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径. 说明: 叶子节点是指没有子节点的节点. 示例:给定如下二叉树, ...

  7. LeetCode:组合总数II【40】

    LeetCode:组合总数II[40] 题目描述 给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合. candi ...

  8. 学会从后往前遍历,例 [LeetCode] Pascal's Triangle II,剑指Offer 题4

    当我们需要改变数组的值时,如果从前往后遍历,有时会带来很多麻烦,比如需要插入值,导致数组平移,或者新的值覆盖了旧有的值,但旧有的值依然需要被使用.这种情况下,有时仅仅改变一下数组的遍历方向,就会避免这 ...

  9. [LeetCode] Pascal's Triangle II 杨辉三角之二

    Given an index k, return the kth row of the Pascal's triangle. For example, given k = 3,Return [1,3, ...

随机推荐

  1. .NET 海量数据并发处理

    .NET 海量数据并发处理 2013-02-19 10:27 提问者悬赏:10分 |XL码的小伙纸| 分类:C#/.NET| 浏览364次 百万级的数据并发处理,网站呈现数据..NET 开发,可能会使 ...

  2. Myeclipse经常弹出Subversion Native Library Not Available

  3. HDU - 5050 (大数二进制gcd)

    It's time to fight the local despots and redistribute the land. There is a rectangular piece of land ...

  4. HDU - 1223 DP 分类

    据说这个是经典问题 \(dp[i][j]=dp[i-1][j-1]*j+dp[i-1][j]*j\) \(dp[i][j]\)表示前i个数分为j个集合,[i-1][j-1]为插入小于号[i-1][j] ...

  5. vux构建的项目打包成app出的一些问题

    1.static里面能放一些外部的插件,css可以放static,引用的时候按照相对路径写, less不可以,因为放在static里面的文件不会经过webpack的处理,所以也就不会编译成css,所以 ...

  6. 联想g400怎么进bios设置u盘启动图文教程

    联想g400怎么进bios设置u盘启动图文教程 转自http://www.kqidong.com/bios/3940.html 虽然成功学会u盘装系统的人很多,但是设置u盘启动在小白们的眼中却没有那么 ...

  7. PIE SDK栅格图层渲染变化事件监听

    1. 功能简介 通过PIE SDK加载图层后,会默认的赋值给数据一个渲染.当用户重新给数据赋值Render或改变数据显示效果时,会触发渲染变化事件. 所谓的事件监听是在事件触发时,将执行用户指定的函数 ...

  8. select 点击的时候获取 value值

    <select onchange="selectUrl1(this.options[this.options.selectedIndex].value);">      ...

  9. Oracle 单实例数据库安装和real application clusters数据库安装的区别

    在想了解Oracle单实例数据可和RAC数据库前,请确保你已经知道了数据库和实例的关系,如果不了解,请参考Oracle 数据库实例和数据库. 单实例数据库模式 单实例模式下,一个数据库只能通过一个实例 ...

  10. TOJ 1690 Cow Sorting (置换群)

    Description Farmer John's N (1 ≤ N ≤ 10,000) cows are lined up to be milked in the evening. Each cow ...