• 2024-07-01代码随想录算法训练营第四十二天 | 1049最后一块石头的重量II 494.目标和 474.一和零
    1049.最后一块石头的重量题目链接文章讲解视频讲解解题思路:  将石头尽量分为相等的两堆,两堆最差即为所求结果  石头的重量就是石头的价值动规五部曲:dp[j]:表示背包容量为j时可以装的石头的总价值递推公式:dp[j]=max(dp[j],dp[j-stones[i]]+stones[i]初始化:均
  • 2024-06-22[题解]AT_abc256_g [ABC256G] Black and White Stones
    思路容易看出来是个DP题,但是你发现DP的起点是不好确定的,于是假定第一条边的起点是黑色。然后你发现设为白色的贡献与黑色是相同的,于是直接令第一条边的起点是黑色,最后答案乘以\(2\)即可。然后就可以愉快的DP了。首先枚举每条边白色点的数量\(k\),定义\(dp_{i,0/1}\)
  • 2024-06-0510_最后一块石头的重量
    1049.最后一块石头的重量II题目难度:中等有一堆石头,每块石头的重量都是正整数。每一回合,从中选出任意两块石头,然后将它们一起粉碎。假设石头的重量分别为x和y,且x<=y。那么粉碎的可能结果如下:如果x==y,那么两块石头都会被完全粉碎;如果x!=y,那么重量为x的石头将会完
  • 2024-06-05力扣-1049. 最后一块石头的重量 II
    1.题目题目地址(1049.最后一块石头的重量II-力扣(LeetCode))https://leetcode.cn/problems/last-stone-weight-ii/题目描述有一堆石头,用整数数组 stones表示。其中 stones[i]表示第i块石头的重量。每一回合,从中选出任意两块石头,然后将它们一起粉碎。假设石头的重量分
  • 2024-05-14CF965D Single-use Stones
    题目链接:因为青蛙最多跳\(l\)的距离,我们设\(l\)为一个区间,那么每个区间青蛙最多能跳过的只数,就是这个区间内石头的个数。(只要有一个区间青蛙没跳过去,那么整段就过不去了)因此青蛙能跳过去的最多只数就是所有区间长度为\(l\)的石头块数的最小值(确保无论踩在哪都能过河)#inclu
  • 2024-04-08算法打卡day37|动态规划篇05| Leetcode1049.最后一块石头的重量II、494.目标和、474.一和零
    算法题Leetcode1049.最后一块石头的重量II题目链接:1049.最后一块石头的重量II 大佬视频讲解:最后一块石头的重量II视频讲解 个人思路和昨天的分割等和子集有些相像,这道题也是尽量让石头分成重量相同的两堆,相撞之后剩下的石头最小,这样就化解成01背包问题了。解法
  • 2024-03-24宝石与石头
    宝石与石头链接:https://leetcode.cn/problems/jewels-and-stones/description/给你⼀个字符串jewels代表石头中宝石的类型,另有⼀个字符串stones代表你拥有的石头。stones中每个字符代表了⼀种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石。字母区分大小
  • 2024-03-21(43/60)最后一块石头的重量Ⅱ、目标和、一和零
    day43最后一块石头的重量Ⅱleetcode:1049.最后一块石头的重量II动态规划思路a-b+c-d+e-f=(a+c+e)-(b+d+f)等效于两堆石头相碰,最小可能重量就是最接近平均的两堆相碰。复杂度分析时间复杂度:O(N^2)。空间复杂度:O(N)。代码实现C++:classSolution{public:/*
  • 2024-03-13代码随想录算法训练营第四十五天 | 279.完全平方数,322. 零钱兑换,70. 爬楼梯 (进阶)
    57.爬楼梯(第八期模拟笔试)时间限制:1.000S空间限制:128MB题目描述假设你正在爬楼梯。需要n阶你才能到达楼顶。每次你可以爬至多m(1<=m<n)个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定n是一个正整数。输入描述输入共一行,包含两个正整数,分
  • 2024-03-12代码随想录算法训练营第四十三天 | 474.一和零,● 494. 目标和 ,1049. 最后一块石头的重量 II
     1049.最后一块石头的重量II 已解答中等 相关标签相关企业 提示 有一堆石头,用整数数组 stones 表示。其中 stones[i] 表示第 i 块石头的重量。每一回合,从中选出任意两块石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,
  • 2024-02-27day43 动态规划part5 代码随想录算法训练营 1049. 最后一块石头的重量 II
    题目:1049.最后一块石头的重量II我的感悟:复习了昨天的模板是不一样,今天这个我推出来了。哈哈 理解难点:按照昨天的思路,dp[target]里面是能凑出来的最大值。a是另外能凑出来的和。diff是两者的差。听课笔记:我自己先写出的代码:classSolution:deflastStoneW
  • 2023-09-12【Leetcode】解题报告Day1~Day2
    解题报告Day11.2235.两数之和给你两个整数num1和num2,返回这两个整数的和。示例1:输入:num1=12,num2=5输出:17解释:num1是12,num2是5,它们的和是12+5=17,因此返回17。示例2:输入:num1=-10,num2=4输出:-6解释:num1+num2=-6,因此返回-6。提示:
  • 2023-09-04The colossus
    BYSYLVIAPLATHIshallnevergetyouputtogetherentirely,Pieced,glued,andproperlyjointed.Mule-bray,pig-gruntandbawdycacklesProtectedfromyourgreatlips.It'sworsethanabarnyardPehapsyouconsideryourselfanoracle,Mouthpiecep
  • 2023-08-13abc270d Stones
    abc270d直接贪心每次取最大的会有问题,比如说下面的例子11245我们考虑dp\(f[i]\)表示在先手的情况下,有i个石头的局面,最多能拿多少个石头,同时记录\(g[i]\)表示选的哪一个\(a[i]\)那么转移就是\(f[i]=max(f[i-a[j]-a[g[i-a[j]]]]+a[j])\)#include<algorithm>#include<cst
  • 2023-08-11LeetCode 1049.最后一块石头的重量II
    1.题目:1049. 最后一块石头的重量II有一堆石头,用整数数组 stones 表示。其中 stones[i] 表示第 i 块石头的重量。每一回合,从中选出任意两块石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,且 x<=y。那么粉碎的可能结果如下:如果 x==y,那么两块石头都会被完全粉
  • 2023-07-21codility算法题:猫过桥问题
    1.题目读题  考查点 2.解法思路 代码逻辑 具体实现 publicclassSolutions{publicstaticvoidmain(String[]args){System.out.println(solution(10,newint[]{2,3,4,8},newint[]{2,5}));System.out.println(solution(10,
  • 2023-07-19代码随想录算法训练营第三十三天| 1049. 最后一块石头的重量 II 494. 目标和 474.一和零
    1049.最后一块石头的重量II思路:因为含有两个石头的相撞,所以需要把dp的目标值改成sum/2,然后取得这个目标值的最大值,然后对sum-2*target代码:1//要求:有多个石头,两两撞击,取得剩下的石头的最小值2//——》一定要碰到最后一个3//注意:4//1,x==y:两个粉碎,x<y:y=
  • 2023-07-11数据结构与算法 #18 下跳棋,极富想象力的同向双指针模拟
    ⭐️本文已收录到AndroidFamily,技术和职场问题,请关注公众号[彭旭锐]和[BaguTreePro]知识星球提问。学习数据结构与算法的关键在于掌握问题背后的算法思维框架,你的思考越抽象,它能覆盖的问题域就越广,理解难度也更复杂。在这个专栏里,小彭将基于Java/Kotlin语言,为你分享常
  • 2023-06-26【每日一题】Problem 443B. Kuriyama Mirai's Stones
    原题解决思路两个数组,一个未排序,一个排序;使用前缀和的方式减少时间复杂度#include<bits/stdc++.h>intmain(){std::ios::sync_with_stdio(false);std::cin.tie(nullptr);std::cout.tie(nullptr);intn;std::cin>>n;std::vector<int>v(n+1,0);f
  • 2023-05-30leetcode 771. Jewels and Stones
    You'regivenstrings J representingthetypesofstonesthatarejewels,and S representingthestonesyouhave. Eachcharacterin Sisatypeofstoneyouhave. Youwanttoknowhowmanyofthestonesyouhavearealsojewels.Thelettersin J areg
  • 2023-05-261049. 最后一块石头的重量 II
    有一堆石头,用整数数组stones表示。其中stones[i]表示第i块石头的重量。每一回合,从中选出任意两块石头,然后将它们一起粉碎。假设石头的重量分别为x和y,且x<=y。那么粉碎的可能结果如下:如果x==y,那么两块石头都会被完全粉碎;如果x!=y,那么重量为x的石头将会完全
  • 2023-05-092023-05-09:石子游戏中,爱丽丝和鲍勃轮流进行自己的回合,爱丽丝先开始 。 有 n 块石子排成一排。 每个玩家的回合中,可以从行中 移除 最左边的石头或最右边的石头, 并获得与该行中剩余石头值
    2023-05-09:石子游戏中,爱丽丝和鲍勃轮流进行自己的回合,爱丽丝先开始。有n块石子排成一排。每个玩家的回合中,可以从行中移除最左边的石头或最右边的石头,并获得与该行中剩余石头值之和相等的得分。当没有石头可移除时,得分较高者获胜。鲍勃发现他总是输掉游戏(可怜的鲍勃,他
  • 2023-05-05LeetCode 1049. 最后一块石头的重量 II
    思路任何时刻,某个石头的重量永远都是若干石头加减运算的绝对值如a-b+c合并石头都是减法,但仍可能出现+运算符,如a-(b-c)=a-b+c任何一种合并方法,最后一个石头的重量都可以表示成一种代数形式,如a+b-c+d+e+f-g不是所有的代数形式都可以转换为一种合并方法,如a+b+c因此
  • 2023-04-202023-04-20:有一堆石头,用整数数组 stones 表示 其中 stones[i] 表示第 i 块石头的重量。 每一回合,从中选出任意两块石头,然后将它们一起粉碎 假设石头的重量分别为 x 和
    2023-04-20:有一堆石头,用整数数组stones表示其中stones[i]表示第i块石头的重量。每一回合,从中选出任意两块石头,然后将它们一起粉碎假设石头的重量分别为x和y,且x<=y那么粉碎的可能结果如下:如果x==y,那么两块石头都会被完全粉碎;如果x!=y,那么重量为x的石头将
  • 2023-04-202023-04-20:有一堆石头,用整数数组 stones 表示 其中 stones[i] 表示第 i 块石头的重量。 每一回合,从中选出任意两块石头,然后将它们一起粉碎 假设石头的重量分别为 x 和
    2023-04-20:有一堆石头,用整数数组stones表示其中stones[i]表示第i块石头的重量。每一回合,从中选出任意两块石头,然后将它们一起粉碎假设石头的重量分别为x和y,且x<=y那么粉碎的可能结果如下:如果x==y,那么两块石头都会被完全粉碎;如果x!=y,那么重量为x的石头将