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

每日5题Day24 - LeetCode 116 - 120

每一步向前都是向自己的梦想更近一步,坚持不懈,勇往直前!

第一题:116. 填充每个节点的下一个右侧节点指针 - 力扣(LeetCode)

/*
// Definition for a Node.
class Node {public int val;public Node left;public Node right;public Node next;public Node() {}public Node(int _val) {val = _val;}public Node(int _val, Node _left, Node _right, Node _next) {val = _val;left = _left;right = _right;next = _next;}
};
*/class Solution {public Node connect(Node root) {//题目已经说了是完美的二叉树,所以每一层都是满的//我们使用栈来实现if(root == null){return root;}Deque<Node> deque = new LinkedList<>();//先把第一个放进来deque.offerLast(root);while(!deque.isEmpty()){Node prev = new Node();int size = deque.size();//对于同一层,不断指向下一个for(int i = 0; i < size; i++){Node node = deque.pollFirst();if(node != null){prev.next = node;}prev = node;if(node.left != null){deque.offerLast(node.left);}if(node.right != null){deque.offerLast(node.right);}}}return root;}
}

第二题:117. 填充每个节点的下一个右侧节点指针 II - 力扣(LeetCode)

/*
// Definition for a Node.
class Node {public int val;public Node left;public Node right;public Node next;public Node() {}public Node(int _val) {val = _val;}public Node(int _val, Node _left, Node _right, Node _next) {val = _val;left = _left;right = _right;next = _next;}
};
*/class Solution {public Node connect(Node root) {//这不是和上一题是一样的吗?if(root == null){return root;}Deque<Node> deque = new LinkedList<>();deque.offerLast(root);while(!deque.isEmpty()){Node prev = new Node();int size = deque.size();for(int i = 0; i < size; i++){Node node = deque.pollFirst();if(node != null){prev.next = node;}prev = node;if(node.left != null){deque.offerLast(node.left);}if(node.right != null){deque.offerLast(node.right);}}}return root;}
}

第三题:118. 杨辉三角 - 力扣(LeetCode)

class Solution {public List<List<Integer>> generate(int numRows) {//因为每一行的的长度都不同,所以要使用ArrayListList<List<Integer>> dp = new ArrayList<>();if(numRows == 0){return dp;}dp.add(new ArrayList<>());dp.get(0).add(1);//注意这里的 i 是指行数,但是dp是从0开始的//所以preRow是i-2for(int i = 2; i <= numRows; i++){List<Integer> row = new ArrayList<>();List<Integer> preRow = dp.get(i-2);row.add(1);for(int j = 1; j < i-1; j++){row.add(preRow.get(j) + preRow.get(j-1));}row.add(1);dp.add(row);}return dp;}
}

第四题:119. 杨辉三角 II - 力扣(LeetCode)

class Solution {public List<Integer> getRow(int rowIndex) {List<List<Integer>> res = new ArrayList<>();if (rowIndex == 0) {return Arrays.asList(1);}res.add(new ArrayList<>());res.get(0).add(1);for (int i = 2; i <= rowIndex + 1; i++) {List<Integer> row = new ArrayList<>();List<Integer> preRow = res.get(i - 2);row.add(1);for (int j = 1; j < i - 1; j++) {row.add(preRow.get(j) + preRow.get(j - 1));}row.add(1);res.add(row);}return res.get(res.size() - 1);}
}

 第五题:120. 三角形最小路径和 - 力扣(LeetCode)

class Solution {public int minimumTotal(List<List<Integer>> triangle) {// 如果三角形为空,返回0if (triangle.size() == 0) {return 0;}// 如果三角形只有一行,直接返回该行的元素值if (triangle.size() == 1) {return triangle.get(0).get(0);}// 创建一个数组来存储当前层到达每个位置的最小路径和int[] dp = new int[triangle.size() + 1];// 从倒数第二层开始向上遍历for (int i = triangle.size() - 1; i >= 0; i--) {// 遍历当前层的每个元素for (int j = 0; j < triangle.get(i).size(); j++) {// 更新当前位置的最小路径和,当前位置的最小路径和等于下一层相邻两个位置的最小值加上当前位置的值dp[j] = Math.min(dp[j], dp[j + 1]) + triangle.get(i).get(j);}}// 返回顶部元素的最小路径和,即为最终结果return dp[0];}
}

相关文章:

  • Ollama在MacOS、Linux本地部署千问大模型及实现WEB UI访问
  • 手机IP地址距离多远会变:解析移动设备的网络定位奥秘
  • 使用TensorFlow和Keras对以ResNet50模型进行微调
  • ArcGIS JSAPI 高级教程 - ArcGIS Maps SDK for JavaScript - 高斯模糊效果
  • 【第10章】Vue之Element Plus常用组件
  • 【考研数据结构——C语言描述】第四章 串
  • 基于51单片机的电子秤的设计
  • 公差基础-配合(互换性和测量基础)-2
  • 推荐系统算法
  • 网页五子棋对战项目测试(selenium+Junit5)
  • Python数据分析与建模库-02科学计算库Numpy01-05合集
  • Java高阶数据结构-----并查集(详解)
  • Matlab实现DBO-BiTCN-BiGRU-Attention蜣螂算法优化双向时间卷积双向门控循环单元融合注意力机制多变量回归预测
  • php收银系统源码推荐
  • tsp可视化python
  • @angular/forms 源码解析之双向绑定
  • [微信小程序] 使用ES6特性Class后出现编译异常
  • 10个最佳ES6特性 ES7与ES8的特性
  • Android开源项目规范总结
  • Codepen 每日精选(2018-3-25)
  • Docker容器管理
  • FastReport在线报表设计器工作原理
  • IE报vuex requires a Promise polyfill in this browser问题解决
  • Nacos系列:Nacos的Java SDK使用
  • Spring思维导图,让Spring不再难懂(mvc篇)
  • vagrant 添加本地 box 安装 laravel homestead
  • 猴子数据域名防封接口降低小说被封的风险
  • 简单易用的leetcode开发测试工具(npm)
  • 理解 C# 泛型接口中的协变与逆变(抗变)
  • 世界编程语言排行榜2008年06月(ActionScript 挺进20强)
  • 阿里云服务器如何修改远程端口?
  • #Datawhale AI夏令营第4期#AIGC方向 文生图 Task2
  • #调用传感器数据_Flink使用函数之监控传感器温度上升提醒
  • #我与Java虚拟机的故事#连载10: 如何在阿里、腾讯、百度、及字节跳动等公司面试中脱颖而出...
  • (2)leetcode 234.回文链表 141.环形链表
  • (27)4.8 习题课
  • (MATLAB)第五章-矩阵运算
  • (顶刊)一个基于分类代理模型的超多目标优化算法
  • (四)【Jmeter】 JMeter的界面布局与组件概述
  • (译) 理解 Elixir 中的宏 Macro, 第四部分:深入化
  • (原创) cocos2dx使用Curl连接网络(客户端)
  • (转)winform之ListView
  • (转)微软牛津计划介绍——屌爆了的自然数据处理解决方案(人脸/语音识别,计算机视觉与语言理解)...
  • .class文件转换.java_从一个class文件深入理解Java字节码结构
  • .helper勒索病毒的最新威胁:如何恢复您的数据?
  • .net core 连接数据库,通过数据库生成Modell
  • .NET MAUI Sqlite数据库操作(二)异步初始化方法
  • .NET MVC之AOP
  • .net Signalr 使用笔记
  • .net 调用php,php 调用.net com组件 --
  • .NET 通过系统影子账户实现权限维持
  • .Net 应用中使用dot trace进行性能诊断
  • .NET简谈设计模式之(单件模式)
  • .NET牛人应该知道些什么(2):中级.NET开发人员
  • @DS 多数据源 + @Transactional(rollbackFor = Exception.class) 导致@DS 多数据源没法使用