资源限制
内存限制: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. 蓝桥杯练习系统:【试题 算法训练 最大质因数】

    试题 算法训练 最大质因数 时间限制:1.0s 内存限制:256.0MB 问题描述 *** 给出N个数字,求出有最大的最大质因数的那个数 输入格式 第一行:一个整数N. 接下来的N行,每行一个整数A_ ...

  2. 【每日一题2019-11-14】-蓝桥杯 prev37 分巧克力

    [每日一题2019-11-14]-蓝桥杯 prev37 分巧克力 文章目录 [每日一题2019-11-14]-蓝桥杯 prev37 分巧克力 1.问题描述 2.输入格式 3.样例输入 4.样例输出 5 ...

  3. 【每日一道智力题】之海盗分金币(上)

    文章目录 题目: 解答: 题目变形: 解答: 总结 题目: 5个海盗抢到了100枚金币,每一颗都一样的大小和价值. 他们决定这么分: 抽签决定自己的号码(1,2,3,4,5) 首先,由1号提出分配方案 ...

  4. 蓝桥杯练习系统习题-算法训练3

    文章推荐 精选java等全套学习资源 精选java电子图书资源 精选大数据学习资源 java项目练习精选 蓝桥杯练习系统习题-算法训练3 题目搜索方式:Ctrl+F--> 输入题目名称-> ...

  5. 蓝桥杯练习系统习题-算法训练1

    蓝桥杯练习系统习题-算法训练1 题目搜索方式:Ctrl+F--> 输入题目名称->定位到解答. 入门训练(详见 算法-蓝桥杯习题(1-1)) 基础练习(详见 算法-蓝桥杯习题(2-1)) ...

  6. 蓝桥杯练习系统习题-历年真题解析2(完整版)

    文章推荐 精选java等全套学习资源 精选java电子图书资源 精选大数据学习资源 java项目练习精选 蓝桥杯练习系统习题-历年真题解析2 题目搜索方式:Ctrl+F--> 输入题目名称-&g ...

  7. 蓝桥杯练习系统习题-历年真题解析1(完整版)

    文章推荐 精选java等全套学习资源 精选java电子图书资源 精选大数据学习资源 java项目练习精选 蓝桥杯练习系统习题-历年真题解析1 题目搜索方式:Ctrl+F--> 输入题目名称-&g ...

  8. 蓝桥杯练习系统习题-算法训练2

    文章推荐 精选java等全套学习资源 精选java电子图书资源 精选大数据学习资源 java项目练习精选 蓝桥杯练习系统习题-算法训练2 题目搜索方式:Ctrl+F--> 输入题目名称-> ...

  9. 蓝桥杯练习系统习题-算法提高2

    文章推荐 精选java等全套学习资源 精选java电子图书资源 精选大数据学习资源 java项目练习精选 蓝桥杯练习系统习题-算法提高2 题目搜索方式:Ctrl+F--> 输入题目名称-> ...

  10. 蓝桥杯练习系统习题-算法提高1

    文章推荐 精选java等全套学习资源 精选java电子图书资源 精选大数据学习资源 java项目练习精选 蓝桥杯练习系统习题-算法提高1 题目搜索方式:Ctrl+F--> 输入题目名称-> ...

最新文章

  1. 自己动手——实现 Dustjs 中间件
  2. 互联网周刊2021云办公平台TOP50,leangoo领歌敏捷研发协作入选
  3. List结果集使用Java代码遍历以获取String,Object的值
  4. 从视觉检测窥探人类大脑和数字大脑的差别
  5. TX2017秋招笔试题之编码
  6. 开发中Docker常用容器记录
  7. tkinter的可视化拖拽工具_拒绝丑图表,教你用最简单的方法做最炫酷的可视化图表!附教程...
  8. 【读书笔记】2_增强学习中的Q-Learning
  9. URL编码与中文相互转换
  10. 技术工作总结报告安全性设计报告用户手册如何编写
  11. 腾讯云轻量服务器性能评测:配置 8核 16G 18M 带宽
  12. 51 《格鲁夫给经理人的第一课》 -豆瓣评分8.8
  13. java访问https链接下载图片
  14. 阿里云——专有网络VPC
  15. Qos(Quality of Service)
  16. wget - Linux系统下载文件工具
  17. 臂式血压计PCBA方案
  18. 小傻蛋的妹妹跟随小甲鱼学习Python的第十节010
  19. java实现象棋ai_中国象棋AI实现?
  20. 当内嵌图层有图层样式时,如何在其上边创建图层剪切蒙版

热门文章

  1. 梦幻西游python验证成语_python正则表达式抓取成语网站
  2. 技能冷却: 判断技能 释放技能
  3. 苹果软件扣费申请退款
  4. excel操作记录——条形图
  5. Unity 六边形地图系列(一) 【笔记】: 创建一个六边形网格
  6. 使用VUE组件创建SpreadJS自定义单元格(二)
  7. Vue3 中定义ts 对象
  8. 简易的定时发送生日邮件功能(Listener+定时器+使用java发送邮件)
  9. python声音识别歌曲_听歌识曲--用python实现一个音乐检索器的功能
  10. 华为交换机查看端口对应的oid索引值