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

news/2024/7/5 3:23:34

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

class Solution {
public:
    int lastStoneWeightII(vector<int>& stones) {
        vector<int> f(30010,0);
        int sum=accumulate(stones.begin(),stones.end(),0);
        int target = sum/2;
        for(int i=0;i<stones.size();i++){
            for(int j=target;j>=stones[i];j--){
                f[j]=max(f[j],f[j-stones[i]]+stones[i]);
            }
        }
        return max(sum-f[target]-f[target],0);
    }
};

494. 目标和

        

class Solution {
public:
    int findTargetSumWays(vector<int>& nums, int S) {
        int sum = 0;
        for (int i = 0; i < nums.size(); i++) sum += nums[i];
        if (abs(S) > sum) return 0; // 此时没有方案
        if ((S + sum) % 2 == 1) return 0; // 此时没有方案
        int bagSize = (S + sum) / 2;
        vector<int> dp(bagSize + 1, 0);
        dp[0] = 1;
        for (int i = 0; i < nums.size(); i++) {
            for (int j = bagSize; j >= nums[i]; j--) {
                dp[j] += dp[j - nums[i]];
            }
        }
        return dp[bagSize];
    }
};

        

474. 一和零

        

class Solution {
public:
    int findMaxForm(vector<string>& strs, int m, int n) {
        int onenum[610]={0};
        int zeronum[610]={0};
        for(int i=0;i<strs.size();i++){
            for(int j=0;j<strs[i].size();j++){
                if(strs[i][j] =='1') onenum[i]++;
                else zeronum[i]++;
            }
        }
        int f[110][110]={0};
        for(int k=0;k<strs.size();k++){
            for(int i=m;i>=zeronum[k];i--){
                for(int j=n;j>=onenum[k];j--){
                    f[i][j] = max(f[i][j],f[i-zeronum[k]][j-onenum[k]]+1);
                }
            }
        }
        return f[m][n];
    }
};


http://lihuaxi.xjx100.cn/news/1570295.html

相关文章

java 从字符串中 输出连续的整数

java 从字符串中 输出连续的整数 //编写程序&#xff0c;从键盘输入一个字符串&#xff0c;内有数字和非数字字符 // 如xy12ab93?5789$,连续的数字为一个整数。 // 例如&#xff1a;字符串中有3个整数&#xff1a;12 93 5786.统计整数个数&#xff0c;并依次输出 import java…

【系统架构】软件可靠性基础知识

导读&#xff1a;本文整理关于软件可靠性基础知识构建系统架构知识体系。完整和扎实的系统架构知识体系是作为架构设计的理论支撑&#xff0c;基于大量项目实践经验基础上&#xff0c;不断加深理论体系的理解&#xff0c;从而能够创造新解决系统相关问题。 目录 1、软件可靠性…

Spring面试题19:说一说Spring注解?什么是基于Java的Spring注解配置?什么是基于注解的容器配置?

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:说一说Spring注解 Spring注解是一种在Spring框架中使用的特殊标记,用于在应用程序中声明特定的配置、行为或功能。注解可以应用于类、方法、字段…

Android handlerThread并发了解

Android开发中如何实现并发&#xff0c;参考HandlerThread代码 核心是由synchronized 配合 wait、notifyall进行处理并发 HandlerThread.java public class HandlerThread extends Thread {//优先级int mPriority;int mTid -1;Looper mLooper;private Nullable Handler mHa…

虚拟机安装 centos

title: 虚拟机安装 centos createTime: 2020-12-13 12:00:27 updateTime: 2020-12-13 12:00:27 categories: linux tags: 虚拟机安装 centos 路线图 主机(宿主机) —> centos --> docker --> docker 镜像 --> docker 容器 — docker 服务 1.前期准备 一台 主机 或…

C++项目 Boost搜索引擎

选取boost库官网中的一个网页作为根目录&#xff0c;用它来建立索引。用户在搜索引擎首页搜索&#xff0c;搜索关键字在服务端&#xff08;searcher)进行分词&#xff0c;查找index&#xff08;供系统进行查找索引&#xff09;。 使用单例模式&#xff0c;只有一个index对象。…

软件测试笔试

作者&#xff1a;爱塔居 专栏&#xff1a;软件测试 文章简介&#xff1a;记录了我在笔试、面试过程中遇见的一些小问题 1.软件的生命周期&#xff1a;需求分析、计划、设计、编码、测试、运行维护 2.软件测试的生命周期&#xff1a;需求分析、测试计划、测试设计/开发、测试执…

[论文分享] How to Better Utilize Code Graphs in Semantic Code Search?

How to Better Utilize Code Graphs in Semantic Code Search? [ESEC/FSE 2022] 语义代码搜索极大地促进了软件的重用&#xff0c;使用户能够找到与用户指定的自然语言查询高度匹配的代码片段。由于代码图(如控制流图和程序依赖图)丰富的表达能力&#xff0c;两种主流的研究工…