LeetCode--triangle

题目描述


Given a triangle, find the minimum path sum from top to bottom. Each step you may move to adjacent numbers on the row below.

For example, given the following triangle

[
     [2],
    [3,4],
   [6,5,7],
  [4,1,8,3]
]


The minimum path sum from top to bottom is11(i.e., 2 + 3+ 5 + 1 = 11).

Note: 
Bonus point if you are able to do this using only O(n) extra space, where n is the total number of rows in the triangle.


分析:动态规划题,从下向上
class Solution {
public:
    int minimumTotal(vector<vector<int> > &triangle) {
        vector<int> res(triangle.back());
        //用一个一维数组,以triangle最后一行元素开始,逐层向上叠加覆盖
        for(int i=triangle.size()-2;i>=0;--i){
            for(int j=0;j<triangle[i].size();++j){
                res[j]=triangle[i][j]+min(res[j],res[j+1]);
                //向上叠加,上一层等于下一层的正下方和右邻近点
            }
        }
        return res[0];
    }
};





内容概要:Rust是一种由Mozilla研究院开发的现代系统编程语言,专注于安全、并发和性能。其设计哲学是“零成本抽象”,即在不影响性能的前提下提供高级抽象。Rust通过所有权系统确保内存安全,避免了垃圾回收的需求,有效防止了悬垂指针、数据竞争和无效内存访问等问题。它提供了强大的并发原语,如线程、通道和原子操作,使并发编程更加简单和安全。此外,Rust编译为机器码,性能接近C/C++,并且支持多种操作系统和架构,包括Windows、Linux、macOS以及嵌入式系统。Rust还拥有活跃的社区和丰富的生态系统,提供了大量涵盖多个领域的库和工具。Rust适用于高性能和安全性的系统级应用,如操作系统、数据库、网络服务器和嵌入式系统,同时也被广泛应用于WebAssembly、区块链和人工智能等领域。; 适合人群:对系统编程感兴趣,尤其是希望在保证性能的同时提升代码安全性的开发者。; 使用场景及目标:①需要开发高性能、安全的系统级应用,如操作系统、数据库、网络服务器等;②希望深入理解内存管理和并发编程的最佳实践;③探索WebAssembly、区块链和人工智能等新兴技术领域。; 阅读建议:Rust不仅适合有经验的系统程序员,也适合希望通过学习现代编程语言提升技能的新手。官方教程《The Rust Programming Language》、实践指南《Rust by Example》和练习项目《Rustlings》都是很好的学习资源,建议结合这些资源进行实践和调试。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值