当前位置: 首页 > news >正文

LeetCode 刷题【119. 杨辉三角 II、120. 三角形最小路径和】

119. 杨辉三角 II

自己做

解:双重for循环

class Solution {public List<Integer> getRow(int rowIndex) {List<Integer> res = Arrays.asList(1);       //结果for(int level = 1; level <= rowIndex; level++){List<Integer> rank = new ArrayList();   //当前行int left, right;for(int j = 0; j <= level; j++){//左上角元素if(j == 0)                  //在开头就是0 + 1,left = 0left = 0;else                        //离开了开头就根据上层的元素开始计算,left = res.get(level - 1).get(i)left = res.get(j - 1);//右上角元素if(j == level)             //在末尾就是1 + 0,right = 0right = 0;else                        //离开了开头就根据上层的元素开始计算,right = res.get(level - 1).get(j)right = res.get(j);rank.add(left + right);     //加入该行结果}res = rank;}return res;}
}

120. 三角形最小路径和

自己做

解:动态规划

class Solution {public int minimumTotal(List<List<Integer>> triangle) {int len = triangle.size();for(int i = 1; i < len; i++)//根据上层元素进行计算路径for(int j = 0; j < triangle.get(i).size(); j++){int left = Integer.MAX_VALUE, up = Integer.MAX_VALUE;if(j == 0)                              //左边第一个元素只能从上层的正对元素抵达up = triangle.get(i - 1).get(j);else if(j == triangle.get(i).size() - 1)    //右边最后一个元素只能从上层的左侧元素抵达left = triangle.get(i - 1).get(j - 1);else{                                   //其余情况两边都能抵达up = triangle.get(i - 1).get(j);left = triangle.get(i - 1).get(j - 1);}triangle.get(i).set(j, Integer.min(up, left) + triangle.get(i).get(j));}int min = triangle.get(len - 1).get(0);for(int i = 1; i < len; i++)if(min > triangle.get(len - 1).get(i))min = triangle.get(len - 1).get(i);return min;}
}

看题解

原来是直接用list开销更大,不过我这使用O(1)的空间为什么内存消耗才超60%,海油糕寿?!

class Solution {public int minimumTotal(List<List<Integer>> triangle) {int n = triangle.size();int[][] f = new int[n][n];f[0][0] = triangle.get(0).get(0);for (int i = 1; i < n; ++i) {f[i][0] = f[i - 1][0] + triangle.get(i).get(0);for (int j = 1; j < i; ++j) {f[i][j] = Math.min(f[i - 1][j - 1], f[i - 1][j]) + triangle.get(i).get(j);}f[i][i] = f[i - 1][i - 1] + triangle.get(i).get(i);}int minTotal = f[n - 1][0];for (int i = 1; i < n; ++i) {minTotal = Math.min(minTotal, f[n - 1][i]);}return minTotal;}
}

http://www.dtcms.com/a/482325.html

相关文章:

  • Jmeter跨线程组获取参数
  • Tomcat核心组件全解析
  • 盈利型网站wordpress系列教程 pdf
  • 基于OpenCASCADE的分层点云到STL实体模型转换技术
  • Dubbo RPC 调用中用户上下文传递问题的解决
  • 推广网站设计推广方案用户体验设计软件
  • 权威的电商网站建设销售平台建设方案
  • 基于浏览器的DOCX文件编辑器:实现导入、编辑与导出功能
  • Android adb 基础使用指南
  • 哈尔滨网站运营服务商宁夏省住房城乡建设厅网站
  • Html播放m3u8视频
  • 鞍山网站网站建设做一个交易平台网站的成本
  • 幂等机制
  • 2025.10月报 Cherry Stuido 1.6.4、Ollama 0.12.5、Dify 1.9.1升级使用摘要
  • 抗衰≠智商税:WJCZ(唯诺因)麦角硫因的细胞级抗衰技术解析
  • 做团购网站有什么难处百度联盟官网
  • 栈与队列相关知识以及算法题
  • 网站制作 wordpress游戏门户网站 织梦
  • 【第五章:计算机视觉-计算机视觉在工业制造领域中的应用】1.工业缺陷分割-(2)BiseNet系列算法详解
  • CNC 加工中的 GLTF 文件:连接设计与制造
  • 02117 信息组织【第一章】
  • rust主要用于哪些领域
  • 【OpenHarmony】分布式文件服务模块架构
  • 具身智能数据采集高校实训方案:开启机器人教育实训新篇章
  • C++中std::forward_iterator_tag 和 std::ptrdiff_t使用详解
  • 网站建设的基本因素是什么东莞模板网站
  • k8s具体安装步骤
  • 无代码网站开发上海谷歌推广
  • 48.文本预处理:给文字数据洗个澡
  • 宠物智能用品:当毛孩子遇上 AI,是便利还是过度?