zoukankan      html  css  js  c++  java
  • 【Pascal's Triangle II 】cpp

    题目:

    Given an index k, return the kth row of the Pascal's triangle.

    For example, given k = 3,
    Return [1,3,3,1].

    Note:
    Could you optimize your algorithm to use only O(k) extra space?

    代码:

    class Solution {
    public:
        vector<int> getRow(int rowIndex) {
                vector<int> ret(rowIndex+1,1);
                for ( int i=0; i<=rowIndex; ++i )
                {
                    for (int j=i-1; j>0; --j)
                    {
                        ret[j] = ret[j] + ret[j-1];
                    }
                }
                return ret;
        }
    };

    tips:

    采用滚动数组技巧,可以缩减空间复杂度。

    ==========================================

    第二次过这道题,题意一开始没有看清,改了一次AC了。

    class Solution {
    public:
        vector<int> getRow(int rowIndex) {
                vector<int> ret(rowIndex<1?1:rowIndex+1,0);
                ret[0] = 1;
                for ( int i=1; i<=rowIndex; ++i )
                {
                    for ( int j=i; j>0; --j )
                    {
                        ret[j] = ret[j-1] + ret[j];
                    }
                }
                return ret;
        }
    };
  • 相关阅读:
    android系统移植与驱动开发概述
    产品常用网址
    Java泛型、反射、集合、多线程
    Java常用类
    Java异常处理
    Java面向对象(二)
    Java面向对象(一)
    Java基础知识
    友链
    退役了
  • 原文地址:https://www.cnblogs.com/xbf9xbf/p/4562270.html
Copyright © 2011-2022 走看看