代码编织梦想

1049. 最后一块石头的重量 II - 力扣(Leetcode)

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

 494. 目标和 - 力扣(Leetcode)

 不太懂,先照着打吧

class Solution {
public:
    int findTargetSumWays(vector<int>& nums, int target) {
        int sum=0;
        for(int i=0;i<nums.size();i++)
            sum+=nums[i];
        if(abs(target)>sum)
            return 0;
        if((target+sum)%2==1)
            return 0;
        int bagSize=(target+sum)/2;
        if(bagSize<0)
            return 0;
        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. 一和零 - 力扣(Leetcode)

 😵,二刷再看看

class Solution {
public:
    int findMaxForm(vector<string>& strs, int m, int n) {
        vector<vector<int>>dp(m+1,vector<int>(n+1,0)); 
        for(string str:strs) 
        {
            int oneNum=0,zeroNum=0;
            for(char c:str) 
            {
                if (c=='0') 
                    zeroNum++;
                else 
                    oneNum++;
            }
            for(int i=m;i>=zeroNum;i--) 
            { 
                for(int j=n;j>=oneNum;j--) 
                {
                    dp[i][j]=max(dp[i][j],dp[i-zeroNum][j-oneNum]+1);
                }
            }
        }
        return dp[m][n];
    }
};

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/baozu/article/details/128008603

一个故意不通过图灵测试的人工智能_大熊随想的博客-爱代码爱编程_一个故意不通过图灵测试的人工智能

一个故意不通过图灵测试的人工智能 人工智能很可能导致人类的永生或者灭绝,而这一切很可能在我们的有生之年发生。

行走在思想的边上――武墩支教十二月(上)_iteye_18993的博客-爱代码爱编程

行走在思想的边上――武墩支教十二月(上) 2011年01月06日   十二月篇   61   将“神奇”还原   ――听《青海高原一株柳》一课有感   该务实,还是务虚,这在中国实在是需要考虑的方向性的大问题。   最近听了两节课,说有幸一点也不为过,一节是原汁原味的农村课――执教的农村老师,学习的是农村学生,课堂在设施简陋的普通一间农村中心小学教室;一

LeetCode---动态规划-爱代码爱编程

LeetCode---动态规划 动态规划什么是动态规划动态规划的解题步骤LeetCode509. 斐波那契数解一:递归解二:动态规划70. 爬楼梯解一:动态规划746. 使用最小花费爬楼梯解一:动态规划62. 不同路径解一:动态规划63. 不同路径 II解一:动态规划343. 整数拆分解一:动态规划96. 不同的二叉搜索树解一:动态规划背包问题01

《labuladong的算法小超》A和《代码随想录》B阅读笔记(2)-爱代码爱编程

第9天 63.不同路径 你看,今天就涉及到带有路障的机器人运动问题了。先上代码再解析 class Solution: def uniquePathsWithObstacles(self, obstacleGrid: List[List[int]]) -> int: # 构造一个DP table row =

【随想录11】动态规划-01背包-爱代码爱编程

背包问题/01背包 背包问题 泛指一类「给定价值与成本」,同时「限定决策规则」,在这样的条件下,如何实现价值最大化的问题【1】 01背包 「01背包」是指给定物品价值与体积(对应了「给定价值与成本」),在规定容量下(对应了「限定决策规则」)如何使得所选物品的总价值最大【1】 01背包的题目: 416. 分割等和子集 1049. 最后一块石头的

【代码随想录】【LeetCode】自学笔记 11 - 动态规划-爱代码爱编程

DP简介 动态规划,英文:Dynamic Programming,简称DP,如果某一问题有很多重叠子问题,使用动态规划是最有效的。 所以动态规划中每一个状态一定是由上一个状态推导出来的,这一点就区分于贪心,贪心没有状态推导,而是从局部直接选最优的 大家知道动规是由前一个状态推导出来的,而贪心是局部直接选最优的,对于刷题来说就够用了。 对于动态规划问题,我

动态规划类题目专题训练 -- LeetCode上38道与动态规划相关的题-爱代码爱编程

这个专题中的题目是我跟随代码随想录的刷题计划,在LeetCode上做的与动态规划相关的题目,用于加深对动态规划的理解! 下面的内容将会有每一道题目的题意、在代码随想录中对应的参考文章、我的思路以及我所写的Java代码,希望对你有帮助! 目录 基础篇1 - LeetCode 509 斐波那契数2 - LeetCode 70 爬楼梯3 - Leet

Leetcode 刷题笔记(二十四) ——动态规划篇之背包问题:01背包-爱代码爱编程

文章目录 系列文章目录前言题录01背包问题416. 分割等和子集1049. 最后一块石头的重量 II494. 目标和474. 一和零 (滚动二维dp) 系列文章目录 一、 数组类型解题方法一:二分法 二、数组类型解题方法二:双指针法 三、数组类型解题方法三:滑动窗口 四、数组类型解题方法四:模拟 五、链表篇之链表的基础操作和经典题目 六、哈希

Leetcode刷题笔记(代码随想录)-爱代码爱编程

1 数组  1.1 二分查找 第一种写法:我们定义 target 是在一个在左闭右闭的区间里,也就是[left, right] 。区间的定义这就决定了二分法的代码应该如何写,因为定义target在[left, right]区间,所以有如下三点: while (left <= right) 要使用 <= ,因为left == right是有

代码随想录一刷个人记录_canneed的博客-爱代码爱编程

代码随想录一刷个人记录2022/7/14(leetcode)2022/7/15(leetcode)2022/7/17【字符串】2022/7/18【字符串】2022/7/20【双指针】2022/7/21【栈 / 队

代码随想录第四十三天_weixin_47880957的博客-爱代码爱编程

代码随想录第四十三天 1049. 最后一块石头的重量 II 有一堆石头,每块石头的重量都是正整数。 每一回合,从中选出任意两块石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,且 x <= y。那么粉碎

代码随想录算法训练营第四十三天| leetcode1049. 最后一块石头的重量 ii、leetcode494. 目标和、leetcode474. 一和零_喵的博客-爱代码爱编程

一、LeetCode1049. 最后一块石头的重量 II         1:题目描述(1049. 最后一块石头的重量 II)         有一堆石头,用整数数组 stones 表示。其中 stones[i] 表示第 i 块石头的重量。         每一回合,从中选出任意两块石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,且 x

【代码随想录】动态规划专栏(java版本含注释)-爱代码爱编程

目录 前言基础题目509. 斐波那契数(简单)70. 爬楼梯(简单)746. 使用最小花费爬楼梯(简单)62. 不同路径(中等)63. 不同路径 II(中等)343. 整数拆分(中等)***96. 不同的二叉搜

数据结构与算法之动态规划 做题思路总结 附详解-爱代码爱编程

个人学习 代码随想录 的做题笔记,如果对你有帮助,请一键三连(点赞+收藏+关注)哦~ 感谢支持!欢迎各位在评论区与博主友好讨论!缓慢更新中…… 一般从以下几点分别考虑: 子状态:递推状态:初始值:遍历顺序:返回结果: 1.斐波那契数列: 0,1,1,2,3…… 求前两个数之和可得此数列。 子状态:F(n)递推状态:F(n)=F(n-

【小航的算法日记】动态规划-爱代码爱编程

目录 一、概念二、模板三、例题爬楼梯题:509. 斐波那契数解:题:70. 爬楼梯解:题:746. 使用最小花费爬楼梯解: 路径题:62. 不同路径解:题:63. 不同路径 II解: 数学题:3