数字三角形- Java(超简单写法)
问题描述
5
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5
上图给出了一个数字三角形。从三角形的顶部到底部有很多条不同的路径。对于每条路径,把路径上面的数加起来可以得到一个和,你的任务就是找到最大的和。
路径上的每一步只能从一个数走到下一层和它最近的左边的那个数或者右边的那个数。此外,向左下走的次数与向右下走的次数相差不能超过 1。
输入格式
输入的第一行包含一个整数N (1<N≤100),表示三角形的行数。下面的 N 行给出数字三角形。数字三角形上的数都是 0 至 100 之间的整数。
输出格式
输出一个整数,表示答案。
样例输入
5
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5
样例输出
27
算法分析:
这题可以使用搜索或者dp做,本题使用动态规划,相对来说动态规划相对简单,好理解一些。题目中说,每次向左下或者向右下走,看谁大加谁,可以用Math.max函数做比较,最后一排中的某个数字即是我们需要的答案,但是题目中说,向左下或者向右下的次数不能超过一,使用奇偶判断,如果是奇数,那么左右左右走,最后一定是走到中间,因为只有这样才能满足向左下或者向右下的次数不能超过一,就算有别的大也不可以。偶数就取中间两个数字看谁大,谁大取谁即可。
import java.util.Scanner;public class 数字三角形 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int dp[][] = new int[n + 1][n + 1];for (int i = 1; i <= n; i++) {for (int j = 1; j <= i; j++) {dp[i][j] = sc.nextInt();dp[i][j] += Math.max(dp[i - 1][j - 1], dp[i - 1][j]); // 动态规划,看左下和右边那个大,想加即可}}// 题目中说了向左下和向右下的次数不超过一,所以如果是奇数,最大的数字一定是在中间,因为只能左右走,最后只能走到中间;// 如果是偶数,就看中间的左边的和右边的那个大取哪一个。System.out.println(n % 2 == 1 ? dp[n][n / 2 + 1] : Math.max(dp[n][n / 2], dp[n][n / 2 + 1]));}
}
数字三角形- Java(超简单写法)相关推荐
- 蓝桥杯 算法训练 数字三角形(最简单的DP)
传送门 题目描述 如下图示出了一个数字三角形. 请编一个程序计算从顶至底的某处的一条路径,使该路径所经过的数字的总和最大. ●每一步可沿左斜线向下或右斜线向下走: ●1<三角形行数≤100: ● ...
- 蓝桥杯数字三角形java,蓝桥杯数字三角形(java)
题目要求: 问题描述 (图3.1-1)示出了一个数字三角形. 请编一个程序计算从顶至底的某处的一条路 径,使该路径所经过的数字的总和最大. ●每一步可沿左斜线向下或右斜线向下走: ●1<三角形行 ...
- java超简单计算器_Java实验--超级简单的计算器
学了Java的GUI后,做了个super简单的计算器,只能做加法.(萌新日常记录,大佬发现有什么问题欢迎评论区留言) 都是很简单的知识,其中主要涉及GridLayout布局的应用.添加监听器.两个控件 ...
- 基于深度学习的手写数字实现及超简单的英文字母识别
本文章大致分为5个板块,分别是MNIST数据库,深度学习神经网络的构建,图像预处理,图像识别,简单的英文字母识别展示. 1.MNIST数据库 总所周知,MNIST数据库是专门用于为手写数字识别系统提供 ...
- 一文搞懂华为ML Kit数字人,超简单集成
一.数字人介绍 虚拟数字人是综合多模态AI能力,结合图像视觉.情绪生成.语音克隆.语义理解等多种AI技术,广泛应用于媒体新闻主播.金融客服.虚拟游戏等众多场景. 数字人在行业中的应用: 二.HMS M ...
- 蓝桥杯 2020省赛 数字三角形 java
分析 此题和https://blog.csdn.net/weixin_51995229/article/details/123165388这个题很相似,可以参考后看下面的 只不过比上个题多加了个条件: ...
- java最美验证码_java超简单,超级实用验证码
java超简单,超级实用验证码 1. 验证码(2) dsnaValidateCode.jar dsnaValidateCode_src.rar ValidateCode.java 验证码生成类 J ...
- 一个超简单的Qt数字按键
由于只需要几个数字按键,没必要加入软件盘,在输入框旁边直接加了一块数字键,超简单,删除键使用的键盘事件,其余均为在lineedit插入字符,超级easy!对于简单按键需求的同学有参考价值! 1.在界面 ...
- 手写oracle分页,oracle分页代码(超简略写法)
当前位置:我的异常网» 数据库 » oracle分页代码(超简略写法) oracle分页代码(超简略写法) www.myexceptions.net 网友分享于:2013-09-26 浏览:5次 ...
- 蓝桥杯-数字三角形 (java)
算法训练 数字三角形 时间限制:1.0s 内存限制:256.0MB问题描述(图3.1-1)示出了一个数字三角形. 请编一个程序计算从顶至底的某处的一条路径,使该路径所经过的数字的总和最大.●每一步可沿 ...
最新文章
- rancher 外置 mysql_rancher使用外部数据库无法正常使用
- C++--在单文档的应用程序增加多个视图
- RabbitMQ默认端口记录(亲测)
- Kali 装机之后的各种操作
- ce测试数据文章ce测试数据文章ce测试数据文章ce测试数据文章ce测试数据文章ce测试数据文章ce测试数据文章ce测试数据文章ce测试数据文章
- python链表和树实验报告_数据结构树和森林实验报告
- 【图像隐写】基于matlab DCT数字水印嵌入+攻击+提取【含Matlab源码 1758期】
- 手机写代码 termux
- 计算机桌面倒计时,Mamsds桌面倒计时
- python监控服务器cpu温度实例_用python访问CPU温度
- PHP实现的RSA加密解密
- 服务器主板2个芯片供电端短路了,笔记本主供电短路维修思路
- 计算机CAD技术在工程设计中的应用,研究在机械工程设计中CAD技术的运用
- C#项目:未找到引用错误解决方案
- 多云管理行政管理规范需求_征服多云管理的6种工具
- 特殊字符url编码以后再解码后出现错误(not , cent, curren, pound)
- 计算机专业见刊快的普刊,可以快速见刊的普刊有哪些?
- 通俗易懂了解什么是docker?以及docker的各种安装环境
- 职场晋升岗位PPT模板-优页文档
- 10V-100V降5V12VDC/DC降压恒压恒流芯片
热门文章
- 做项目管理需要哪些技能呢?
- 腾讯云入门教程之腾讯云大学153个实验案例(免费学习)
- 神经网络的迭代次数有可能被计算出来吗?
- 各种说明方法的例句_举例子,列数字,作比较,打比方,这几个说明方法的例句...
- 2021-7-20 Cityscape 数据集从19分类到4分类BiSeNetv1-v2训练验证和测试一条龙
- 常见计算机网络协议汇总
- 前端播放m3u8格式视频
- goroutine并发扫描MySQL表_【扫描全能王】【干货】Goroutine Channel
- 【Error】Win10/Python3.9安装dlib报错:subprocess.CalledProcessError以及解决方法
- tf7: RNN—古诗词