代码随想录训练营Day43| 1049. 最后一块石头的重量 II 494. 目标和 474.一和零

news2024/11/21 0:14:40

目录

学习目标

学习内容

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

  494. 目标和 

  474.一和零 


学习目标

  •  1049. 最后一块石头的重量 II 
  •  494. 目标和 
  •  474.一和零  

学习内容

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

1049. 最后一块石头的重量 II - 力扣(LeetCode)icon-default.png?t=N3I4https://leetcode.cn/problems/last-stone-weight-ii/

class Solution:
    def lastStoneWeightII(self, stones: List[int]) -> int:
        amount = sum(stones)
        target = amount//2
        n = len(stones)
        dp = [0]*(target+1)
        for i in range(n):
            for j in range(target,stones[i]-1,-1):
                dp[j] = max(dp[j],dp[j-stones[i]]+stones[i])
        #print(dp)
        return amount-2*dp[-1]

  494. 目标和 

494. 目标和 - 力扣(LeetCode)icon-default.png?t=N3I4https://leetcode.cn/problems/target-sum/

class Solution:
    def findTargetSumWays(self, nums: List[int], target: int) -> int:
        amount = sum(nums)
        if (amount-target)%2!=0 or amount<abs(target):return 0
        n = len(nums)
        target = (amount-target)//2
        dp = [0]*(target+1)
        dp[0] = 1
        for i in range(n):
            for j in range(target,nums[i]-1,-1):
                dp[j] +=dp[j-nums[i]]
        #print(dp)
        return dp[target]

  474.一和零 

474. 一和零 - 力扣(LeetCode)icon-default.png?t=N3I4https://leetcode.cn/problems/ones-and-zeroes/

class Solution:
    def findMaxForm(self, strs: List[str], m: int, n: int) -> int:
        # dp[k][i][j] 表示 用到个k个元素当前装满i个0和j个1的最长子集长度
        # dp[k][i][j] = max(dp[k-1][i][j],dp[k-1][i-strs[i].count(0)][j-strs[i].count(1)]+1)
        # 初始化 dp[i][j]根据第一个元素进行初始化
        # 顺序 先物品 后背包 从上到下 从右到左(为了元素只用了一次)

        dp = [[0]*(n+1)for _ in range(m+1)]
        for item in strs:
            num0 = 0
            num1 = 0
            for c in item:
                if c=="0":
                    num0+=1
                else:
                    num1+=1
            for i in range(m,num0-1,-1):
                for j in range(n,num1-1,-1):
                    dp[i][j] = max(dp[i][j],dp[i-num0][j-num1]+1)
        return dp[-1][-1]

 

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

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

相关文章

【云计算与虚拟化】第三章 实验二 在ESXi主机中安装操作系统

实验二 在ESXi主机中安装操作系统 为ESXi主机添加一块数据存储磁盘&#xff0c;大小为80G&#xff0c;磁盘名称为&#xff1a;ESXi-loc-80G&#xff08;截图&#xff09; 2.登录vSphere Client&#xff0c;加载新添加的数据存储磁盘&#xff0c;加载大小为60G&#xff0c;并将…

网络编程——嵌入式(驱动)软开基础(五)

1. 列举一下OSI协议的各种分层。说说你最熟悉的一层协议的功能。 (1)七层划分为:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。 (2)五层划分为:应用层、传输层、网络层、数据链路层、物理层。 (3)四层划分为:应用层、传输层、网络层、网络接口层。(…

springboot+java+jsp校园二手书旧书交易交换系统

前台功能&#xff1a;用户进入系统可以对首页、书籍信息、校园公告、个人中心、后台管理等功能进行操作&#xff1b; 后台主要是管理员&#xff0c;管理员功能包括主页、个人中心、学生管理、发布人管理、书籍分类管理、书籍信息管理、交易信息管理、交换信息管理、系统管理等&…

Linux运维常用grep命令使用

grep 命令是 Linux 运维中非常常见的文本搜索工具 常用的使用方法如下&#xff1a; 1、查找包含指定字符串的行 grep "pattern" file.txt 其中&#xff0c;pattern 是要查找的字符串&#xff0c;file.txt 是要搜索的文件名。 2、查找不包含指定字符串的行 grep -v…

chatgpt赋能Python-python3_9_2怎么换行

Python 3.9.2 换行方法 Python 3.9.2 已经出现了&#xff0c;除了一些修复和新功能&#xff0c;Python 3.9.2 还包括了一些在换行方面的改进。在本文中&#xff0c;我们将介绍 Python 3.9.2 中换行的新方法。 换行符 在 Python 3.9.2 中&#xff0c;我们可以使用换行符来实现…

chatgpt赋能Python-python3_10下载安装

Python3.10&#xff1a;开发者首选 对于每个开发者来说&#xff0c;选择合适的编程语言是至关重要的。在众多可供选择的编程语言中&#xff0c;Python一直是最受欢迎的选择之一。为什么Python如此受欢迎&#xff1f;因为其简单易学、代码可读性强、广泛的库支持和适用于各种应…

【Git相关命令】

git全局设置 作用是用于描述git使用者的身份。注意&#xff0c;设置的用户名和邮箱跟代码托管平台的用户名和邮箱没有任何关系。 git config --global user.name "用户名" git config --global user.email "邮箱地址"获取git仓库 方式1&#xff1a;将本地的…

【5.18】二、黑盒测试方法—边界值分析法

目录 2.2 边界值分析法 2.2.1 边界值分析法概述 2.2.2 实例&#xff1a;三角形问题的边界值分析 2.2.3 实例&#xff1a;余额宝提现的边界值分析 2.2 边界值分析法 程序的一些错误往往发生在边界处理上&#xff0c;这是因为程序开发时对边界问题没有做好处理。边界值分析法…

视频剪辑要学什么软件 视频剪辑要学些什么

这几年短视频行业迅速出圈&#xff0c;不少人都想加入这片红海&#xff0c;但是在剪辑这块儿却卡住了。众所周知&#xff0c;想要发短视频&#xff0c;会视频剪辑是很重要的。那么视频剪辑要学什么软件&#xff0c;视频剪辑要学什么&#xff1f;下面我们来分享一下相关知识。一…

JAVA日常练习—习题5

1.机器人类及其子类 设计一个机器人的抽象类&#xff0c;具有质量&#xff08;double&#xff09;、名字&#xff08;String&#xff09;等属性&#xff1b;具有设置属性值方法和获得并打印属性值的方法&#xff0c;还有一个运动的抽象方法move()。设计电动汽车类和飞行器类&a…

【STM32G431RBTx】备战蓝桥杯嵌入式→决赛试题→第十届

文章目录 前言一、题目二、模块初始化三、代码实现interrupt.h:interrupt.c:main.h:main.c: 四、完成效果五、总结 前言 无 一、题目 二、模块初始化 1.LCD这里不用配置&#xff0c;直接使用提供的资源包就行 2.双ADC:开启双ADCsingle-ended 3.LED:开启PC8-15,PD2输出模式就…

chatgpt赋能Python-python3_6安装keras

在Ubuntu 16.04上安装Keras Keras是一个非常流行的Python深度学习库&#xff0c;它可以让你高效地构建和训练深度神经网络。在本指南中&#xff0c;我们将介绍如何在Ubuntu 16.04上安装Keras&#xff0c;并建立一个简单的基于CNN的图像分类器。 准备工作 在安装Keras之前&am…

MySQL 基础篇 1.1 执行一条SQL语句会发生什么

1. MySQL架构一共分为两层 server 和 存储引擎层&#xff08;一般为Innodb引擎&#xff09; 主要执行流程都在server层&#xff1a;连接器&#xff0c;查询缓存&#xff0c;解析SQL&#xff08;解析器&#xff09;&#xff0c;执行SQL&#xff08;预处理器&#xff0c;优化器&a…

2023年ES的使用总结

1.Elasticsearch 非常强大的开源搜索引擎&#xff0c;可以帮助我们从海量数据中快速找到需要的内容 什么是elasticsearch 一个开源的分布式搜索引擎&#xff0c;可以用来实现搜索、日志统计、分析、系统监控 什么是elastic stack 是以elasticsearch为核心的技术栈&#xf…

运算符重载函数作为类的成员函数——有理数的约分

目录 一、题目 二、代码 三、算法分析 &#xff08;一&#xff09;数学表达式 &#xff08;二&#xff09; 代码实现 一&#xff09;运算符重载函数 二&#xff09;优化函数&#xff08;实现有理数约分&#xff09; 一、题目 通过运算符重载为类的成员函数来实现两个有…

【云计算与虚拟化】第二章 实验一 VMware Workstation的使用

实验一 vmware workstation的使用 安装Windows Server 2012 R2虚拟机&#xff0c;并激活&#xff08;计算机命名为&#xff1a;学号姓名拼音的首字母&#xff09; 2.在Windows Server 2012 R2的虚拟机中安装VMTools 3.关机创建快照&#xff08;快照命名为&#xff1a;学号姓名…

OMG Data Distribution Service(DDS)规范解读-Part4

目录 2.4 Listeners, Conditions, and Wait-sets2.4.1 Communication Status2.4.2 Changes in Status2.4.2.1 Plain communication statuses2.4.2.2 Read Communication Statuses 2.2.4.3 Access through Listeners2.2.4.3.1 Listener Access to Plain Communication Status2.2…

I2C总线

基于linux-3.14.16 一、注册I2C总线 以上代码即完成了i2c总线的注册&#xff0c;并且添加了一个i2c驱动dummy_driver 二、注册适配器 1、平台总线匹配 设备树有i2c1设备 平台总线匹配后执行probe 2、执行probe 获取中断号 获取地址资源并映射 填充i2c_adapter&#…

chatgpt赋能Python-python3_7如何安装matplotlib

Python3.7如何安装Matplotlib Matplotlib是一个Python的绘图库&#xff0c;可以帮助用户制作2D和3D图表和图形。它利用了NumPy、SciPy和其他Python包&#xff0c;具有出色的兼容性和可视化效果&#xff0c;广泛应用于数据分析、科学计算和工程领域。在本篇文章中&#xff0c;我…

chatgpt赋能Python-python2转3

Python2转3的最终结论 Python是一种流行的编程语言&#xff0c;但随着Python 2的维护结束&#xff0c;许多开发者正在考虑将他们的代码从Python 2升级到Python 3。这篇文章将介绍如何在搜索引擎优化&#xff08;SEO&#xff09;方面实现Python 2转3&#xff0c;并讨论为什么这…