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

leetcode3040.相同分数的最大操作数目II

记忆化搜索问题,也可以采用动态规划解决

代码实现时,在计算第二次区间 DP 和第三次区间 DP 时,无需重置 memory 数组,这是因为不同的 target 不会递归到同一对 (i,j) 上。这可以用反证法证明:假如不同的 target 递归到同一对 (i,j) 上,这说明之前的操作次数相同,且删除的元素和相同,所以两次区间 DP 对应的得分是相同的,矛盾。

class Solution {private int[][] memory;private int maxOperations(int[] nums, int start, int end, int target) {//1.元素个数为1甚至更少时,无法进行操作,返回操作数0if (start >= end) {return 0;}//2.如果已经知道start到end需要多少次操作时,直接返回结果if (memory[start][end] != -1) {return memory[start][end];}//3.递归进行计算操作数int result = 0;//3.1删除前两个数result = nums[start] + nums[start + 1] == target ? Math.max(result, 1 + maxOperations(nums, start + 2, end, target)) : result;//3.2删除后两个数result = nums[end - 1] + nums[end] == target ? Math.max(result, 1 + maxOperations(nums, start, end - 2, target)) : result;//3.3删除前后两个数result = nums[start] + nums[end] == target ? Math.max(result, 1 + maxOperations(nums, start + 1, end - 1, target)) : result;//4.记忆化结果并返回return memory[start][end] = result;}public int maxOperations(int[] nums) {//1.初始化记忆数组为全-1memory = new int[nums.length][nums.length];for (int[] ints : memory) {Arrays.fill(ints, -1);}//2.记忆化搜索//2.1删除前两个数int result1 = 1 + maxOperations(nums, 2, nums.length - 1, nums[0] + nums[1]);//2.2删除后两个数int result2 = 1 + maxOperations(nums, 0, nums.length - 3, nums[nums.length - 1] + nums[nums.length - 2]);//2.3删除前后两个数int result3 = 1 + maxOperations(nums, 1, nums.length - 2, nums[0] + nums[nums.length - 1]);//3.返回结果return Math.max(result1, Math.max(result2, result3));}
}

http://www.dtcms.com/a/550670.html

相关文章:

  • dz网站标题公司做网站的费用用途写什么
  • 从局域网工具到全球传输:FastSend的无服务器共享革命
  • PostgreSQL 定位索引损坏位置
  • 做网站销售怎么找客户用群晖做网站服务器
  • 兰州做高端网站的公司查做外贸客户的网站
  • 打工人日报#20251030
  • 馆陶企业做网站推广构建网站需要会什么意思
  • H264的码流结构
  • 苏省住房和城乡建设厅网站首页平湖公司做网站
  • 网站购物车功能怎么做湘潭网站建设网站推广
  • go操作xml
  • Doris初始化脚本全攻略
  • Linux:权限复盘扩展|粘滞位|软件包管理器|Linux软件生态
  • Marin说PCB之高速差分信号设计:紧耦合还是松耦合?
  • 做网站应该先从什么地方开始在线购物网站 项目
  • php cms网站建设巴中城乡建设局网站
  • h5 服装网站模板潍坊百度快速排名优化
  • 做网站写代码怎么样上海松江区建设局官方网站
  • 滑动窗口算法专题+题目详解
  • 数据中心双供电架构中的智能化切换与预警管理
  • 网站图片怎么做优化济南网络营销网站建设
  • 各种各样的Self-attention学习下(第二十一周周报)
  • 网站前台功能模块介绍郑州网站建设一汉狮网络
  • 网站开发服务 税社交系统开发
  • 简单聊一下vue中的#app
  • 网站空间支持下载但不能下载文件简单门户网站开发
  • 厦门市小学生信息学竞赛(C++)初赛总复习(第二章 算法知识与数据结构 -第四节 队列)
  • 化工类网站建设推广网站备案后下一步做什么
  • 做网站一般需要哪些文件夹?兰州网站开发公司
  • 获取 Excel 工作表的名字【Java 图文详解】