【Leetcode】Pascal's Triangle II

【Leetcode】Pascal's Triangle II

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

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?

思路:最简单的方法就是依照【Leetcode】Pascal’s Triangle 的方式自顶向下依次求解,但会造成空间的浪费。若仅仅用一个vector存储结果。在下标从小到大的遍历过程中会改变vector的值,如[1, 2, 1] 按小标从小到大累计会变成[1, 3, 4, 1]不是所求解,因此能够採取两种解决方法,简单的一种则是使用两个vector,一个存上一层的值。一个存本层的值,然后再进行交换。第二种方法则是按下标从大到小进行遍历,则会避免上述问题。

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/117724.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • MQTTBox客户端工具(Windows版)

    MQTTBox是一个带有可视化的界面的MQTT的客户端工具.工具特性:创建连接到相同或不同MQTT代理的多个并发MQTT客户端TCP,SSL/TLS,Web套接字和安全的Web套接字支持创建具有多种连接设置的MQTT客户端-最后的遗留,keepAlive,连接超时等等用户名/密码认证连接,断开连接,重新连接MQTT客户端到代理的选项将消息从同一MQTT客户端发布到多个主题从同一MQTT客户端订阅多个主题支持单级(+)和多级(#)订阅主题单击即可复制,重新发布有效负载查看已发

    2022年4月4日
    1.7K
  • Warning: file_put_contents(常用单词1.txt): failed to open stream: Invalid argument in

    Warning: file_put_contents(常用单词1.txt): failed to open stream: Invalid argument in

    2022年4月2日
    204
  • cglib动态代理实现原理_jdk cglib 动态代理 区别

    cglib动态代理实现原理_jdk cglib 动态代理 区别cglib动态代理详解我们都知道jdk的动态代理内部调用切面无效的问题,而cglib则不会出现这种情况,这是为什么?cglib就一定不会出现内部调用切面无效的问题吗?cglib针对每一个类只创建了一个代理类吗?为什么cglib的效率要比jdk的动态代理低呢?首先我们看一下通常我们是如何使用cglib增强一个类的publicclassMain{staticclassTest{publicvoidtest(){System.out.pr

    2022年10月21日
    2
  • 【Windows网络编程】完成端口IOCP介绍(超详细)

    【Windows网络编程】完成端口IOCP介绍(超详细)这篇文档我非常详细并且图文并茂的介绍了关于网络编程模型中完成端口的方方面面的信息,从API的用法到使用的步骤,从完成端口的实现机理到实际使用的注意事项,都有所涉及,并且为了让朋友们更直观的体会完成端口的用法,本文附带了有详尽注释的使用MFC编写的图形界面的示例代码。       我的初衷是希望写一份互联网上能找到的最详尽的关于完成端口的教学文档,而且让对Socket编程略有了解的人都能够

    2022年4月18日
    355
  • Android 应用程序窗口显示状态操作(requestWindowFeature()的应用)

    Android 应用程序窗口显示状态操作(requestWindowFeature()的应用)

    2021年9月11日
    50
  • 蓝牙协议详解(蓝牙是什么)

    蓝牙协议分析(1)基本概念 蓝牙4.1,是一个大杂烩:BR/EDR沿用旧的蓝牙规范;LE抄袭802.15.4;AMP直接使用802.11。而这一切的目的,就是以兼容性和易用性为基础,在功耗和传输速率之间左右为难。1.蓝牙技术的概述1.1两种蓝牙技术:经典蓝牙(检称BT)和低功耗蓝牙(简称BLE) 蓝牙协议包括两种技术:经典蓝牙(简称BT)和低功耗蓝牙(简称BLE)。这两种技术,都包括搜…

    2022年4月10日
    151

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号