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

力扣【1049. 最后一块石头的重量 II】Java题解(背包问题)

让石头分成重量相同的两堆(尽可能相同),相撞之后剩下的石头就是最小的。进一步转化成容量为重量总喝一半的背包最多可以装多少质量的石头。这样就转化成了背包问题。
最后求结果时,我们所最多能装的时dp[target],那另一半石头就是sum-dp[target],我们所求的就是(sum-dp[target])-dp[target],也就是sum-dp[target] * 2。

class Solution {public int lastStoneWeightII(int[] stones) {int sum = 0;for(int num:stones) sum += num;int target = sum/2;int[] dp = new int[target + 1];for(int i=0;i<dp.length;i++){dp[i] = 0;}for(int i=0;i<stones.length;i++){for(int j=target;j>=stones[i];j--){dp[j] = Math.max(stones[i]+dp[j-stones[i]],dp[j]);}}return sum-dp[target] * 2;}
}

题目链接

http://www.lryc.cn/news/529507.html

相关文章:

  • FFmpeg rtmp推流直播
  • WordPress Icegram Express插件Sql注入漏洞复现(CVE-2024-2876)(附脚本)
  • 重构字符串(767)
  • IO进程线程复习
  • 深入理解Linux内核的虚拟地址到物理地址转换机制及缓存优化
  • 2025年01月29日Github流行趋势
  • yolov11、yolov8部署的7种方法(yolov11、yolov8部署rknn的7种方法),一天一种部署方法,7天入门部署
  • 【ArcGIS遇上Python】批量提取多波段影像至单个波段
  • Node.js MySQL:深度解析与最佳实践
  • wordpress外贸独立站常用询盘软件
  • Kotlin 委托详解
  • Cursor 简介:AI 如何改变编程体验
  • Fiddler(一) - Fiddler简介_fiddler软件
  • 实测数据处理(Wk算法处理)——SAR成像算法系列(十二)
  • P1775 石子合并(弱化版)
  • 一文回顾讲解Java中的集合框架
  • 多模态论文笔记——NaViT
  • 智能小区物业管理系统推动数字化转型与提升用户居住体验
  • I2C基础知识
  • 护眼好帮手:Windows显示器调节工具
  • MongoDb user自定义 role 添加 action(collStats, EstimateDocumentCount)
  • mysql学习笔记-数据库其他调优策略
  • Office / WPS 公式、Mathtype 公式输入花体字、空心字
  • (done) MIT6.S081 2023 学习笔记 (Day6: LAB5 COW Fork)
  • SYN Flooding的攻击原理
  • MYSQL--一条SQL执行的流程,分析MYSQL的架构
  • cmd命令行无法进入D:盘怎么办
  • CRC校验详解
  • windows系统本地部署deepseek及webui界面
  • (算法竞赛)使用广度优先搜索(BFS)解决迷宫最短路径问题