zoukankan      html  css  js  c++  java
  • leetcode-pascal triangle I&&II

    对于第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 == 0) return res;
    10         for (int i = 0; i < numRows; i++)
    11         {
    12             vector<int> v; v.clear();
    13             for (int j = 0; j <= i; j++)
    14             {
    15                 if (j == 0 || j == i) v.push_back(1);
    16                 if (i>0 && j > 0 && j < i)
    17                 {
    18                     v.push_back(res[i - 1][j] + res[i - 1][j - 1]);
    19                 }
    20             }
    21             res.push_back(v);
    22         }
    23         return res;///////////忘了返回了,一直找不出错来。
    24     }
    25     vector<int> getRow(int rowIndex) {
    26         vector<int> res(rowIndex+1,0);
    27         vector<int> tmp(2,0);
    28         //if (rowIndex == 0) return vector<int>(1,1);
    29         for (int i = 0; i <= rowIndex; i++)
    30         {
    31             tmp[0] = 1; tmp[1] = 1;//别放错位置。之前放到内层的for里了。
    32             for (int j = 0; j <= i; j++)
    33             {
    34                 if (j == 0 || j == i)
    35                     res[j] = 1;
    36                 if (j>0 && j < i)
    37                 {
    38                     if (j % 2 == 0)
    39                         tmp[0] = res[j];
    40                     else if (j % 2 == 1)
    41                         tmp[1] = res[j];
    42                     res[j] += tmp[1-j%2];
    43                 }
    44             }
    45         }
    46         return res;
    47     }
    48 };
    49 
    50 void printVV(vector<vector<int>> vv)
    51 {
    52     for (int i = 0; i < vv.size(); i++)
    53     {
    54         for (int j = 0; 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(0);
    66     for (int i = 0; i < v.size(); i++)
    67     {
    68         cout << v[i] << " ";
    69     }
    70     //printVV(vv);
    71     return 0;
    72 }
  • 相关阅读:
    eclipse部署
    jsp—eclipse配置
    虚拟路径和虚拟主机
    tomcat配置
    初来乍到K
    【转】https://和http://区别
    【转】编码格式
    【转】如何使用瑞萨E10A调试SH系列不带片内FLASH的单片机
    【转】UML
    软考_系统架构师
  • 原文地址:https://www.cnblogs.com/forcheryl/p/4069427.html
Copyright © 2011-2022 走看看