牛客JZ47 礼物的最大价值【中等 动态规划 C++/Java/Go/PHP】

题目

在这里插入图片描述
题目链接:
https://www.nowcoder.com/practice/2237b401eb9347d282310fc1c3adb134

思路

动态规划:
每个单元格依赖于他的上边a和左边b,单元格的值为max(a,b)+自己的值

参考答案C++

class Solution {public:/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可*** @param grid int整型vector<vector<>>* @return int整型*/int maxValue(vector<vector<int> >& grid) {//简单的动态规划int n = grid.size();int m = grid[0].size();vector<vector<int>> dp(n, vector<int>(m));dp[0][0] = grid[0][0];//填充第一行for (int c = 1; c < m; c++) {dp[0][c] = dp[0][c - 1] + grid[0][c];}//填充第一列for (int r = 1; r < n; r++) {dp[r][0] = dp[r - 1][0] + grid[r][0];}for (int i = 1; i < n; i++) {for (int j = 1; j < m; j++) {//只能往下走或者往右,那就是每个单元格依赖于他的上边和左边int cur = dp[i - 1][j];if (cur < dp[i][j - 1]) {cur = dp[i][j - 1];}dp[i][j] = cur + grid[i][j];}}return dp[n - 1][m - 1];}
};

参考答案Java

import java.util.*;public class Solution {/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可*** @param grid int整型二维数组* @return int整型*/public int maxValue (int[][] grid) {//简单的动态规划int n = grid.length;int m = grid[0].length;int[][] dp = new int[n][m];dp[0][0] = grid[0][0];//填充第一行for (int col = 1; col < m ; col++) {dp[0][col] = dp[0][col - 1] + grid[0][col];}//填充第一列for (int row = 1; row < n ; row++) {dp[row][0] = dp[row - 1][0] + grid[row][0];}for (int i = 1; i < n ; i++) {for (int j = 1; j < m ; j++) {//只能往下走或者往右,那就是每个单元格依赖于他的上边和左边dp[i][j] += Math.max(dp[i - 1][j], dp[i][j - 1]) + grid[i][j];}}return dp[n - 1][m - 1];}
}

参考答案Go

package main/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可*** @param grid int整型二维数组* @return int整型*/
func maxValue(grid [][]int) int {//简单的动态规划n := len(grid)m := len(grid[0])dp := make([][]int, n)for i := 0; i < n; i++ {dp[i] = make([]int, m)}dp[0][0] = grid[0][0]//填充第一行for c := 1; c < m; c++ {dp[0][c] = dp[0][c-1] + grid[0][c]}//填充第一列for r := 1; r < n; r++ {dp[r][0] = dp[r-1][0] + grid[r][0]}for i := 1; i < n; i++ {for j := 1; j < m; j++ {//只能往下走或者往右,那就是每个单元格依赖于他的上边和左边cur := dp[i-1][j]if dp[i][j-1] > cur {cur = dp[i][j-1]}dp[i][j] = cur + grid[i][j]}}return dp[n-1][m-1]
}

参考答案PHP

<?php/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** * @param grid int整型二维数组 * @return int整型*/
function maxValue( $grid )
{//简单的动态规划$n = count($grid);$m = count($grid[0]);$dp = [[0=>$grid[0][0]]];//填充第一行for($c = 1;$c <$m;$c++){$dp[0][$c] = $dp[0][$c-1]+$grid[0][$c];}//填充第一列for($r = 1;$r<$n;$r++){$dp[$r][0] = $dp[$r-1][0]+ $grid[$r][0];}for($i=1;$i<$n;$i++){for($j=1;$j<$m;$j++){//只能往下走或者往右,那就是每个单元格依赖于他的上边和左边$cur = $dp[$i-1][$j];if($cur < $dp[$i][$j-1]){$cur = $dp[$i][$j-1];}$dp[$i][$j] =$cur+$grid[$i][$j];}}return $dp[$n-1][$m-1];
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/4985.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

京东web京东,m端滑块,h5st4.2,4.3,4.7

声明 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01;wx a15018601872 本文章未…

力扣33. 搜索旋转排序数组

Problem: 33. 搜索旋转排序数组 文章目录 题目描述思路复杂度Code 题目描述 思路 1.初始化左右指针&#xff1a;首先&#xff0c;定义两个指针left和right&#xff0c;分别指向数组的开始和结束位置。 2.计算中间值&#xff1a;在left和right之间找到中间位置mid。 3.比较中间值…

strstr,strnstr函数详解

strstr函数 strstr函数是C语言中的一个字符串函数&#xff0c;用于在一个字符串中查找另一个字符串的出现位置。 它的函数原型如下&#xff1a; char *strstr(const char *haystack, const char *needle); 在这个函数中&#xff0c;haystack表示被搜索的字符串&#xff0c;…

【多态】有关多继承和菱形继承的多态

博主首页&#xff1a; 有趣的中国人 专栏首页&#xff1a; C进阶 其它专栏&#xff1a; C初阶 | 初阶数据结构 | Linux 博主会持续更新 本篇文章主要讲解 多继承和菱形继承的多态 的相关内容 文章目录 1. 回顾多态底层2. 抽象类2.1 概念2.2 接口继承和实现继承 3. 虚表所在…

Linux——web建立wordpress

下载 [rootnfs-server ~]# yum install php wget https://wordpress.org/latest.tar.gz解压 /var/www/html [rootnfs-server html]# tar -xzvf latest.tar.gz [rootnfs-server html]# rm latest.tar.gz授权 [rootnfs-server html]# chown -R www:www /var/www/html添加文件备…

利用kimi等大模型进行运维参数解析和调优

在运维时&#xff0c;经常遇到很多参数&#xff0c;有些参数不知道意义&#xff0c;知道意义的也有些不知道合理参考值是多少。利用kimi等大模型来当老司机&#xff0c;轻松解决运维难题。 例如在运维hive参数时&#xff0c;有些不知道作用&#xff0c;提示次如下 你的角色是…

windows ubuntu sed,awk,grep篇:7.sed 多行模式及循环

目录 46.读取下一行数据并附加到模式空间(命令 N) 47.打印多行模式中的第一行(命令 P) 48. 删除多行模式中的第一行(命令 D) 49.循环和分支(命令 b 和 :label 标签) 50.使用命令 t 进行循环 Sed 默认每次只处理一行数据&#xff0c;除非使用 H,G 或者 N 等命令创建多行模式&…

python学习笔记B-11:序列结构之列表--二维列表的遍历和生成式

二维列表的遍历方式&#xff0c;使用双层for循环&#xff0c;遍历索引号。 二维列表的生成式&#xff0c;也是使用类似双层循环的形式生成。 print("##初始化二维列表&#xff0c;每个元素就是1个列表") lst [["东方延续","太空军自然选择号舰长&qu…

释放Stable Diffusion 无限可能

最近在整理大语言模型的系列内容&#xff0c;Stable Diffusion 是我下一篇博客的主题。关注 Stable Diffusion&#xff0c;是因为它是目前最受欢迎和影响力最大的多模态生成模型之一。Stable Diffusion 于 2022 年 8 月发布&#xff0c;主要用于根据文本的描述产生详细图像&…

基于SpringBoot+Vue笔记记录分享网站设计与实现

项目介绍&#xff1a; 信息数据从传统到当代&#xff0c;是一直在变革当中&#xff0c;突如其来的互联网让传统的信息管理看到了革命性的曙光&#xff0c;因为传统信息管理从时效性&#xff0c;还是安全性&#xff0c;还是可操作性等各个方面来讲&#xff0c;遇到了互联网时代…

C语言 | Leetcode C语言题解之第50题Pow(x,n)

题目&#xff1a; 题解&#xff1a; double myPow(double x, int n){if(n 0 || x 1){return 1;}if(n < 0){return 1/(x*myPow(x,-(n1)));}if(n % 2 0){return myPow(x*x,n/2);}else{return x*myPow(x*x,(n - 1)/2);} }

【Jenkins】持续集成与交付 (三):有关报错解决(Jenkins (2.387.3) or higher required)

🟣【Jenkins】持续集成与交付 (三):有关报错解决Jenkins (2.387.3) or higher required 一、Jenkins主页报错二、安装Jenkins插件报错三、解决过程(解压替换jenkins.war)四、重新访问登录💖The Begin💖点点关注,收藏不迷路💖 一、Jenkins主页报错 New version …

吴恩达2022机器学习专项课程(一)7.2 逻辑回归的简化成本函数

问题预览/关键词 本节课内容逻辑回归的损失函数简化之后的形式是&#xff1f;为什么可以简化&#xff1f;成本函数的通用形式是&#xff1f;逻辑回归成本函数的最终形式是&#xff1f;逻辑回归为什么用对数损失函数计算成本函数&#xff1f;为什么不直接给出逻辑回归损失函数的…

[详解]Spring AOP

&#x1f3a5; 个人主页&#xff1a;Dikz12&#x1f525;个人专栏&#xff1a;Spring学习之路&#x1f4d5;格言&#xff1a;吾愚多不敏&#xff0c;而愿加学欢迎大家&#x1f44d;点赞✍评论⭐收藏 目录 什么是AOP? Spring AOP 快速入门 Spring AOP核心概念 切点(Point…

selenium 4.x入门篇(环境搭建、八大元素定位)

背景 Web自动化测现状 1. 属于 E2E 测试 2. 过去通过点点点 3. 好的测试&#xff0c;还需要记录、调试网页的细节 一、selenium4.x环境搭建 一键搭建 pip3 install webdriver-helper 安装后自动的完成&#xff1a; 1. 查看浏览器的版本号 2. 查询操作系统的类型…

【智能优化算法】蚱蜢优化算法(Grasshopper Optimization Algorithm,GOA)

蚱蜢优化算法(Grasshopper Optimization Algorithm&#xff0c;GOA)是期刊“IEEE Access”&#xff08;IF 3.9&#xff09;的2021年智能优化算法 01.引言 蚱蜢优化算法(Grasshopper optimization algorithm, GOA)&#xff0c;并将其应用于结构优化中的挑战性问题。该算法在数学…

Microsoft Edge浏览器:高效、简洁、个性化的网页浏览体验

Microsoft Edge是微软公司推出的一款网络浏览器&#xff0c;它是基于Chromium开源项目开发的&#xff0c;因此与Google Chrome有很多相似之处。以下是一些使用Microsoft Edge的心得体会&#xff1a; 1. 界面简洁&#xff1a;Microsoft Edge的界面设计非常简洁&#xff0c;用户…

华为od入职第13天!

今天早上就分配活了&#xff0c;写一个模块的ut&#xff0c;但是今天一句代码没写成&#xff0c;一直在看代码逻辑。下午就是新员工的一个会&#xff0c;部门20来个人做一下自我介绍啥的。晚上我导师给我们几个新员工讲项目框架和一些代码逻辑啥的&#xff0c;讲了一个多小时&a…

区块链技术与应用学习笔记(5-7节)——北大肖臻课程

​ 目录 ​BTC实现 基于交易的账本模式&#xff1a; UTXO集合&#xff1a; 交易费用&#xff1a; BTC网络 1.应用层&#xff1a; 2.网络层&#xff1a; 3传播层&#xff1a; 什么是鲁棒&#xff1f; BTC挖矿&#xff1a; 出块奖励&#xff1a; 挖矿难度调整&#…

Python | Leetcode Python题解之第51题N皇后

题目&#xff1a; 题解&#xff1a; class Solution:def solveNQueens(self, n: int) -> List[List[str]]:def generateBoard():board list()for i in range(n):row[queens[i]] "Q"board.append("".join(row))row[queens[i]] "."return b…