[leetcode] Triangle

本文介绍了一个算法问题——给定一个三角形结构的数组,寻找从顶点到底部的最小路径总和。提供了两种解决方案,分别使用C++和Java实现,详细展示了如何通过动态规划来高效解决这个问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

From : https://leetcode.com/problems/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 is 11 (i.e., 2 + 3 + 5 + 1 = 11).

class Solution {
public:
    int minimumTotal(vector<vector<int>>& triangle) {
        if(triangle.size() == 0 || triangle[0].size() == 0) return 0;
        vector<int> mins;
        mins.push_back(triangle[0][0]);
        for(int i=1, rows=triangle.size(); i<rows; i++) {
            mins.push_back(triangle[i][i]+mins[i-1]);
            for(int j=i-1; j>0; j--) {
                mins[j] = min(mins[j], mins[j-1])+triangle[i][j];
            }
            mins[0] += triangle[i][0];
        }
        int min = INT_MAX;
        for(int i=mins.size()-1; i>=0; i--) {
            if(min > mins[i]) min = mins[i];
        }
        return (min!=INT_MAX)*min;
    }
};

public class Solution {
	public int minimumTotal(List<List<Integer>> t) {
		if (t == null || t.size() == 0 || t.get(0) == null
				|| t.get(0).size() == 0) {
			return 0;
		}
		int[] candidates = new int[t.size()];
		candidates[0] = t.get(0).get(0);
		for (int i = 1; i < t.size(); ++i) {
			List<Integer> cur = t.get(i);
			for (int j = i; j >= 0; --j) {
				if (j == 0 || j == i) {
					if (j == 0) {
						candidates[0] += cur.get(0);
					} else {
						candidates[j] = candidates[j - 1] + cur.get(j);
					}
				} else {
					candidates[j] = cur.get(j)
							+ Math.min(candidates[j], candidates[j - 1]);
				}
			}
		}
		int ans = candidates[0];
		for (int i = 1; i < candidates.length; ++i) {
			if (candidates[i] < ans) {
				ans = candidates[i];
			}
		}
		return ans;
	}
}


内容概要:该研究通过在黑龙江省某示范村进行24小时实地测试,比较了燃煤炉具与自动/手动进料生物质炉具的污染物排放特征。结果显示,生物质炉具相比燃煤炉具显著降低了PM2.5、CO和SO2的排放(自动进料分别降低41.2%、54.3%、40.0%;手动进料降低35.3%、22.1%、20.0%),但NOx排放未降低甚至有所增加。研究还发现,经济性和便利性是影响生物质炉具推广的重要因素。该研究不仅提供了实际排放数据支持,还通过Python代码详细复现了排放特征比较、减排效果计算和结果可视化,进一步探讨了燃料性质、动态排放特征、碳平衡计算以及政策建议。 适合人群:从事环境科学研究的学者、政府环保部门工作人员、能源政策制定者、关注农村能源转型的社会人士。 使用场景及目标:①评估生物质炉具在农村地区的推广潜力;②为政策制定者提供科学依据,优化补贴政策;③帮助研究人员深入了解生物质炉具的排放特征和技术改进方向;④为企业研发更高效的生物质炉具提供参考。 其他说明:该研究通过大量数据分析和模拟,揭示了生物质炉具在实际应用中的优点和挑战,特别是NOx排放增加的问题。研究还提出了多项具体的技术改进方向和政策建议,如优化进料方式、提高热效率、建设本地颗粒厂等,为生物质炉具的广泛推广提供了可行路径。此外,研究还开发了一个智能政策建议生成系统,可以根据不同地区的特征定制化生成政策建议,为农村能源转型提供了有力支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值