【算法刷题day43】Leetcode:1049. 最后一块石头的重量 II、494. 目标和、474. 一和零

news/2024/10/21 17:33:41/

文章目录

    • Leetcode 1049. 最后一块石头的重量 II
      • 解题思路
      • 代码
      • 总结
    • Leetcode 494. 目标和
      • 解题思路
      • 代码
      • 总结
    • Leetcode 474. 一和零
      • 解题思路
      • 代码
      • 总结

草稿图网站
java的Deque

Leetcode 1049. 最后一块石头的重量 II

题目:1049. 最后一块石头的重量 II
解析:代码随想录解析

解题思路

和上一题差不多,找到总和一半重量能装多少重的石头,然后就能找出两堆重量相差最小的石头,然后相砸得到剩下的重量

代码

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

总结

暂无

Leetcode 494. 目标和

题目:494. 目标和
解析:代码随想录解析

解题思路

例如:dp[j],j 为5,
已经有一个1(nums[i]) 的话,有 dp[4]种方法 凑成 容量为5的背包。
已经有一个2(nums[i]) 的话,有 dp[3]种方法 凑成 容量为5的背包。
已经有一个3(nums[i]) 的话,有 dp[2]中方法 凑成 容量为5的背包
已经有一个4(nums[i]) 的话,有 dp[1]中方法 凑成 容量为5的背包
已经有一个5 (nums[i])的话,有 dp[0]中方法 凑成 容量为5的背包

代码

class Solution {public int findTargetSumWays(int[] nums, int target) {int sum = 0;for (int i = 0; i < nums.length; i++)sum += nums[i];if (Math.abs(target) > sum) return 0;if ((target + sum) % 2 == 1) return 0;int bagSize = (target + sum) / 2;int []dp = new int[bagSize + 1];dp[0] = 1;for (int i = 0; i < nums.length; i++) {for (int j = bagSize; j >= nums[i]; j--)dp[j] += dp[j - nums[i]];}return dp[bagSize];}
}

总结

暂无

Leetcode 474. 一和零

题目:474. 一和零
解析:代码随想录解析

解题思路

每来一个字符串就更新一遍,m个0和n个1从后往前遍历

代码

class Solution {public int findMaxForm(String[] strs, int m, int n) {int [][]dp = new int[m+1][n+1];for (String s : strs) {int oneNum = 0, zeroNum = 0;for (char c : s.toCharArray()) {if (c == '0') zeroNum++;else oneNum++;}for (int i = m; i >= zeroNum; i--) {for (int j = n; j >= oneNum; j--) {dp[i][j] = Math.max(dp[i][j], dp[i - zeroNum][j - oneNum] + 1);}}}return dp[m][n];}
}

总结

暂无


http://www.ppmy.cn/news/1457822.html

相关文章

WebAssembly(Wasm)

WebAssembly (Wasm) 是一种在现代Web浏览器中运行的二进制指令格式。它被设计为一种可移植、可执行的代码格式&#xff0c;可以在现代Web浏览器中安全、快速地运行。Wasm 最初是为了解决JavaScript 在某些领域&#xff08;如3D图形、物理模拟、视频处理等&#xff09;性能不足的…

Pycharm的安装

Pycharm的安装 无偿分享&#xff0c;只求关注个公众号&#xff1a;爬虫探索者&#xff0c;发送pycharm获取。具体可以参考公众号idea的安装教程。 点击下一步 根据情况选择安装路径 最好不要使用中文。 勾选安装配置项 只选择创建桌面快捷方式就行了&#xff0c;其他选项…

【OpenNJet下一代云原生之旅】

OpenNJet下一代云原生之旅 1、OpenNJet的定义OpenNJet架构图 2、OpenNJet的特点性能无损动态配置灵活的CoPilot框架支持HTTP/3支持国密企业级应用高效安全 3、OpenNJet的功能特性4、OpenNJet的安装使用编译安装配置yum源创建符号连接修改配置编译 5、通过 OpenNJet 部署 WEB SE…

codeforce#938 (div3) 题解

C. Inhabitant of the Deep Sea 数组第一个元素减一下&#xff0c;最后一个元素减一下&#xff0c;一共能减k次&#xff0c;问有多少元素能减到0.细节模拟我是傻逼&#xff0c;有问题建议直接看tc面像tc编程 #include <iostream> #include <string.h> #include &…

武汉星起航:亚马逊欧洲站:丰富商品与卓越服务铸就高客单价典范

亚马逊&#xff0c;作为全球最大的电商平台之一&#xff0c;其欧洲站在全球电商市场中占据着举足轻重的地位。其中&#xff0c;亚马逊欧洲站的人均客单价更是高居世界前列&#xff0c;这背后究竟隐藏着哪些原因呢&#xff1f; 首先&#xff0c;亚马逊具有丰富且高质量的商品品…

mysql添加远程登录账户

为了远程连接&#xff0c;您必须使MySQL将端口3306绑定到my.cnf中计算机的IP地址。然后&#xff0c;您必须同时在localhost和&#xff05;通配符中创建用户&#xff0c;并在所有DB上授予权限。 修改my.cnf&#xff0c;如果不存在这行则添加&#xff0c;可以输入0.0.0.0 bind-ad…

Redis如何避免数据丢失?——AOF

目录 AOF日志 1. 持久化——命令写入到AOF文件 写到用户缓冲区 AOF的触发入口函数——propagate 具体的实现逻辑——feedAppendOnlyFile 从用户缓冲区写入到AOF文件(磁盘&#xff09; 函数write、fsync、fdatasync Redis的线程池 AOF文件的同步策略 触发的入口函数——…

【华为OD机试C++】求最小公倍数

《最新华为OD机试题目带答案解析》:最新华为OD机试题目带答案解析,语言包括C、C++、Python、Java、JavaScript等。订阅专栏,获取专栏内所有文章阅读权限,持续同步更新! 文章目录 描述输入描述输出描述示例1示例2描述 正整数A和正整数B 的最小公倍数是指 能被A和B整除的最小…