每日一道算法题 拿金币(蓝桥杯练习系统)简单的dp算法
资源限制
内存限制:256.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s
问题描述
有一个N x N的方格,每一个格子都有一些金币,只要站在格子里就能拿到里面的金币。你站在最左上角的格子里,每次可以从一个格子走到它右边或下边的格子里。请问如何走才能拿到最多的金币。
输入格式
第一行输入一个正整数n。
以下n行描述该方格。金币数保证是不超过1000的正整数。
输出格式
最多能拿金币数量。
样例输入
3
1 3 3
2 2 2
3 1 2
样例输出
11
数据规模和约定
n<=1000
第一种解法:先创建两个数组,nn数组用来记录每个方格的数,dp用来记录每个位置的最佳选择
import java.util.Scanner;
public class Main {public static void main(String[] args) {Scanner in=new Scanner(System.in);int n=in.nextInt();int[][] nn=new int[n+1][n+1];int[][] dp=new int[n+1][n+1];for(int i=0;i<n;i++){for(int j=0;j<n;j++){nn[i][j]=in.nextInt();}}for(int i=0;i<=n;i++){for(int j=0;j<=n;j++){//左上角的点if(i==0&&j==0)dp[i][j]=nn[0][0];//如果是第一行,只能是来自左边的点else if(i==0){dp[i][j]=dp[i][j-1]+nn[i][j];//如果是第一列,只能是来自上面的点}else if(j==0){dp[i][j]=dp[i-1][j]+nn[i][j];//其余的就选择是来自上面的还是来自左边的最大}else {dp[i][j]=Math.max(dp[i][j-1],dp[i-1][j])+nn[i][j];}}}//最后输出遍历的结果System.out.println(dp[n][n]);}
}
但是提交之后显示内存超限,因为我开了两个数字,题目的内存限制在256.0MB,但是我的却是300.4MB,仔细思考了下,完全没必要开两个数组,一个dp就足够了
import java.util.Scanner;
public class Main {public static void main(String[] args) {Scanner in=new Scanner(System.in);int n=in.nextInt();int[][] dp=new int[n+1][n+1];for(int i=0;i<n;i++){for(int j=0;j<n;j++){dp[i][j]=in.nextInt();}}for(int i=0;i<=n;i++){for(int j=0;j<=n;j++){if(i==0&&j==0)dp[i][j]=dp[0][0];else if(i==0){dp[i][j]+=dp[i][j-1];}else if(j==0){dp[i][j]+=dp[i-1][j];}else {dp[i][j]+=Math.max(dp[i][j-1],dp[i-1][j]);}}}System.out.println(dp[n][n]);}
}
这样就正确了
总结:之前刷题一不会就去网上搜现成的代码,但是每次的结果是看到之后依旧不会,所以我决定以后每次刷题如果不会去看知识点,然后自己再思考。
每日一道算法题 拿金币(蓝桥杯练习系统)简单的dp算法相关推荐
- 蓝桥杯练习系统:【试题 算法训练 最大质因数】
试题 算法训练 最大质因数 时间限制:1.0s 内存限制:256.0MB 问题描述 *** 给出N个数字,求出有最大的最大质因数的那个数 输入格式 第一行:一个整数N. 接下来的N行,每行一个整数A_ ...
- 【每日一题2019-11-14】-蓝桥杯 prev37 分巧克力
[每日一题2019-11-14]-蓝桥杯 prev37 分巧克力 文章目录 [每日一题2019-11-14]-蓝桥杯 prev37 分巧克力 1.问题描述 2.输入格式 3.样例输入 4.样例输出 5 ...
- 【每日一道智力题】之海盗分金币(上)
文章目录 题目: 解答: 题目变形: 解答: 总结 题目: 5个海盗抢到了100枚金币,每一颗都一样的大小和价值. 他们决定这么分: 抽签决定自己的号码(1,2,3,4,5) 首先,由1号提出分配方案 ...
- 蓝桥杯练习系统习题-算法训练3
文章推荐 精选java等全套学习资源 精选java电子图书资源 精选大数据学习资源 java项目练习精选 蓝桥杯练习系统习题-算法训练3 题目搜索方式:Ctrl+F--> 输入题目名称-> ...
- 蓝桥杯练习系统习题-算法训练1
蓝桥杯练习系统习题-算法训练1 题目搜索方式:Ctrl+F--> 输入题目名称->定位到解答. 入门训练(详见 算法-蓝桥杯习题(1-1)) 基础练习(详见 算法-蓝桥杯习题(2-1)) ...
- 蓝桥杯练习系统习题-历年真题解析2(完整版)
文章推荐 精选java等全套学习资源 精选java电子图书资源 精选大数据学习资源 java项目练习精选 蓝桥杯练习系统习题-历年真题解析2 题目搜索方式:Ctrl+F--> 输入题目名称-&g ...
- 蓝桥杯练习系统习题-历年真题解析1(完整版)
文章推荐 精选java等全套学习资源 精选java电子图书资源 精选大数据学习资源 java项目练习精选 蓝桥杯练习系统习题-历年真题解析1 题目搜索方式:Ctrl+F--> 输入题目名称-&g ...
- 蓝桥杯练习系统习题-算法训练2
文章推荐 精选java等全套学习资源 精选java电子图书资源 精选大数据学习资源 java项目练习精选 蓝桥杯练习系统习题-算法训练2 题目搜索方式:Ctrl+F--> 输入题目名称-> ...
- 蓝桥杯练习系统习题-算法提高2
文章推荐 精选java等全套学习资源 精选java电子图书资源 精选大数据学习资源 java项目练习精选 蓝桥杯练习系统习题-算法提高2 题目搜索方式:Ctrl+F--> 输入题目名称-> ...
- 蓝桥杯练习系统习题-算法提高1
文章推荐 精选java等全套学习资源 精选java电子图书资源 精选大数据学习资源 java项目练习精选 蓝桥杯练习系统习题-算法提高1 题目搜索方式:Ctrl+F--> 输入题目名称-> ...
最新文章
- 自己动手——实现 Dustjs 中间件
- 互联网周刊2021云办公平台TOP50,leangoo领歌敏捷研发协作入选
- List结果集使用Java代码遍历以获取String,Object的值
- 从视觉检测窥探人类大脑和数字大脑的差别
- TX2017秋招笔试题之编码
- 开发中Docker常用容器记录
- tkinter的可视化拖拽工具_拒绝丑图表,教你用最简单的方法做最炫酷的可视化图表!附教程...
- 【读书笔记】2_增强学习中的Q-Learning
- URL编码与中文相互转换
- 技术工作总结报告安全性设计报告用户手册如何编写
- 腾讯云轻量服务器性能评测:配置 8核 16G 18M 带宽
- 51 《格鲁夫给经理人的第一课》 -豆瓣评分8.8
- java访问https链接下载图片
- 阿里云——专有网络VPC
- Qos(Quality of Service)
- wget - Linux系统下载文件工具
- 臂式血压计PCBA方案
- 小傻蛋的妹妹跟随小甲鱼学习Python的第十节010
- java实现象棋ai_中国象棋AI实现?
- 当内嵌图层有图层样式时,如何在其上边创建图层剪切蒙版