1046. 最后一块石头的重量 1046. Last Stone Weight 题目描述 每日一算法2019/6/22Day 50LeetCode1046. Last Stone Weight Java 实现 and so on 参考资料 https://leetcode.com/problems/last-stone-weight/ https://leetcode-cn.com/problems/last-stone-weight/…
有一堆石头,每块石头的重量都是正整数. 每一回合,从中选出两块最重的石头,然后将它们一起粉碎.假设石头的重量分别为 x 和 y,且 x <= y.那么粉碎的可能结果如下: 如果 x == y,那么两块石头都会被完全粉碎:如果 x != y,那么重量为 x 的石头将会完全粉碎,而重量为 y 的石头新重量为 y-x.最后,最多只会剩下一块石头.返回此石头的重量.如果没有石头剩下,就返回 0. 提示: 1 <= stones.length <= 301 <= stones[i] <…
题目: 有一堆石头,每块石头的重量都是正整数. 每一回合,从中选出两块最重的石头,然后将它们一起粉碎.假设石头的重量分别为 x 和 y,且 x <= y.那么粉碎的可能结果如下: 如果 x == y,那么两块石头都会被完全粉碎:如果 x != y,那么重量为 x 的石头将会完全粉碎,而重量为 y 的石头新重量为 y-x.最后,最多只会剩下一块石头.返回此石头的重量.如果没有石头剩下,就返回 0. 提示: 1 <= stones.length <= 301 <= stones[i]…
有一堆石头,每块石头的重量都是正整数. 每一回合,从中选出任意两块石头,然后将它们一起粉碎.假设石头的重量分别为 x 和 y,且 x <= y.那么粉碎的可能结果如下: 如果 x == y,那么两块石头都会被完全粉碎: 如果 x != y,那么重量为 x 的石头将会完全粉碎,而重量为 y 的石头新重量为 y-x. 最后,最多只会剩下一块石头.返回此石头最小的可能重量.如果没有石头剩下,就返回 0. 示例: 输入:[2,7,4,1,8,1] 输出:1 解释: 组合 2 和 4,得到 2,所以数组转…
这是小川的第388次更新,第418篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第250题(顺位题号是1046).有一个石头集合,每个石头都有一个正整数重量值. 每次,我们选择两块最重的岩石并将它们粉碎在一起.假设石头的重量为x和y,x <= y.粉碎的结果是: 如果x == y,两块石头都被完全粉碎; 如果x != y,重量为x的石头被完全粉碎,重量为y的石头具有新的重量y-x. 最后,剩下最多1块石头.返回这块石头的重量(如果没有留下石头,则返回0). 例如:…
[BZOJ2000][HNOI2000]取石头游戏(贪心,博弈论) 题面 BZOJ 洛谷 题解 这题好神仙啊,窝不会QaQ. 假装一下只有三个元素\(a_{i-1},a_i,a_{i+1}\),并且满足,\(a_{i-1}\le a_i\ge a_{i+1}\)那么肯定是\(a_{i-1}+a_{i+1}\).\(a_i\)这样子分配的.那么两个人的差就是\(a_{i-1}+a_{i+1}-a_i\),那么我们把\(i\)和旁边两个元素直接合并就好了,反正只要知道了两个人的差和所有元素之和就能还…
[POI2007]石头花园SKA Time Limit: 20 Sec  Memory Limit: 162 MBSubmit: 776  Solved: 237[Submit][Status][Discuss] Description Blue Mary是一个有名的石头收藏家.迄今为止,他把他的藏品全部放在他的宫殿的地窖中.现在,他想将他的藏品陈列在他的花园中.皇家花园是一个边长为1000000000单位的平行于坐标轴的正方形.对于每个石头,Blue Mary都有一个他想放置的坐标,然后将他告…
1046: 钓鱼(数据增强版) Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 11  Solved: 3 [id=1046">Submit][Status][Web Board] Description 在一条水平路边.有n个钓鱼湖.从右到左编号为1.2.3--.n. 佳佳有H个小时的空余时间.他希望用这些时间尽可能多的钓鱼.他从湖1出发,向右走.有选择的在一些湖边停留一定时间钓鱼.最后在某一湖边结束钓鱼.佳佳測出从第i个湖到第i+1个湖须…
P3210 [HNOI2010]取石头游戏 题目描述 A 公司正在举办一个智力双人游戏比赛----取石子游戏,游戏的获胜者将会获得 A 公司提供的丰厚奖金,因此吸引了来自全国各地的许多聪明的选手前来参加比赛. 与经典的取石子游戏相比,A公司举办的这次比赛的取石子游戏规则复杂了很多: l 总共有N堆石子依次排成一行,第i堆石子有 ai个石子. l 开始若干堆石子已被 A公司故意拿走. l 然后两个玩家轮流来取石子,每次每个玩家可以取走一堆中的所有石子,但有一个限制条件:一个玩家若要取走一堆石子,则…
给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头. S 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石. J 中的字母不重复,J 和 S中的所有字符都是字母.字母区分大小写,因此"a"和"A"是不同类型的石头. 示例 1: 输入: J = "aA", S = "aAAbbbb" 输出: 3 示例 2: 输入: J = "z", S = "ZZ"…
水题: 给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头. S 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石. J 中的字母不重复,J 和 S中的所有字符都是字母.字母区分大小写,因此"a"和"A"是不同类型的石头. 示例 1: 输入: J = "aA", S = "aAAbbbb" 输出: 3 示例 2: 输入: J = "z", S = "ZZ&q…
先二分出一个x,我们要算使最近的跳跃距离>=x的最少移除数量是否<=M就可以了 然后就别dp了...贪心就完事了...我肯定能不移就不移比较好... #include<bits/stdc++.h> #define pa pair<int,int> #define lowb(x) ((x)&(-(x))) #define REP(i,n0,n) for(i=n0;i<=n;i++) #define PER(i,n0,n) for(i=n;i>=n0;i…
给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头. S 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石. J 中的字母不重复,J 和 S中的所有字符都是字母.字母区分大小写,因此"a"和"A"是不同类型的石头. 示例 1: 输入: J = "aA", S = "aAAbbbb" 输出: 3 示例 2: 输入: J = "z", S = "ZZ"…
题目: 给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头. S 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石. You're given strings J representing the types of stones that are jewels, and S representing the stones you have. Each character in S is a type of stone you have. You want…
原题链接在这里:https://leetcode.com/problems/last-stone-weight/ 题目: We have a collection of rocks, each rock has a positive integer weight. Each turn, we choose the two heaviest rocks and smash them together.  Suppose the stones have weights x and y with x…
lc57 Insert Interval 仔细分析题目,发现我们只需要处理那些与插入interval重叠的interval即可,换句话说,那些end早于插入start以及start晚于插入end的interval都可以保留.我们只需要两个指针,i&j分别保存重叠interval中最早start和最晚end即可,然后将interval [i, j]插入即可 class Solution { public int[][] insert(int[][] intervals, int[] newInte…
在柠檬水摊上,每一杯柠檬水的售价为 5 美元. 顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯. 每位顾客只买一杯柠檬水,然后向你付 5 美元.10 美元或 20 美元.你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付 5 美元. 注意,一开始你手头没有任何零钱. 如果你能给每位顾客正确找零,返回 true ,否则返回 false . 示例 1: 输入:[5,5,5,10,20]输出:true解释:前 3 位顾客那里,我们按顺序收取 3 张 5 美元的钞票.第 4…
771. 宝石与石头 给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头. S 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石. J 中的字母不重复,J 和 S中的所有字符都是字母.字母区分大小写,因此"a"和"A"是不同类型的石头. 示例 1: 输入: J = "aA", S = "aAAbbbb" 输出: 3 示例 2: 输入: J = "z", S = &qu…
376. 摆动序列 题目 如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为 摆动序列 .第一个差(如果存在的话)可能是正数或负数.仅有一个元素或者含两个不等元素的序列也视作摆动序列. 例如, [1, 7, 4, 9, 2, 5] 是一个 摆动序列 ,因为差值 (6, -3, 5, -7, 3) 是正负交替出现的. 相反,[1, 4, 7, 2, 5] 和 [1, 7, 4, 5, 5] 不是摆动序列,第一个序列是因为它的前两个差值都是正数,第二个序列是因为它的最后一个差值为零. 子…
Input: J = "aA", S = "aAAbbbb" Output: 3 解:J为宝石字符串,S为包含宝石的字符串,J中的字母如果在S中出现数字就➕1 键值对让下标对应值为1,如果目标数组中的下标所对应的第一个数组中的值存在==1,则该字母是宝石字母 var numJewelsInStones = function(J, S) { let array1 = J.split(''); let array2 = S.split(''); let count =…
思路: 收到5块时,只是添加:收到十块时,添加10块,删除一个5块:收到20块时,添加20,删除一个10块一个5块,或者直接删除3个5块(注意:这里先删除5+10优于3个5) class Solution(object): def lemonadeChange(self, bills): """ :type bills: List[int] :rtype: bool """ exchange=[] for i in bills: exchange…
class Solution {       public int lastStoneWeight(int[] stones) {        MaxHeap s=new MaxHeap(stones.length+1);        for(int i=0;i<stones.length;i++)        {            s.insert(stones[i]);        }        while(s.size()>1)        {            i…
leetcode真的是一个学习阅读理解的好地方 860. 柠檬水找零 """ 因为用户支付的只会有5.10.20 对于10元的用户必须找一个5 对于20元的用户可以找(三个5)或者(一个10一个5),每次都从大的开始找起来 """ class Solution: def lemonadeChange(self, bills) -> bool: five = 0 ten = 0 for i in bills: if i == 5: five…
堆专题 参考了力扣加加对与堆专题的讲解,刷了些 leetcode 题,在此做一些记录,不然没几天就忘光光了 力扣加加-堆专题(上) 力扣加加-堆专题(下) 总结 优先队列 // 1.java中有优先队列的实现:默认是小顶堆 PriorityQueue<Integer> minHeap = new PriorityQueue<>(3); maxHeap.offer(1); maxHeap.offer(2); maxHeap.offer(3); System.out.println(m…
今天的比赛的题目相对来说比较「直白」,不像前几周都是一些特定的算法,如果你没学过不可能想出来. 做了这些周,对leetcode比赛的题目也发现了一些「规律」. 一般前两道题都很「简单」,只要有想法,直接敲代码就能解出来.更多考察的是结果是否正确,速度其次. 后两道题有些难度 ,不同场次难度不一样,也可能和不同人的水平感受不同.但是肯定比前两道要难. 一般在做后两道题的时候,只要复杂度是对的,一些细节也不用考虑太多.例如数组开的空间大小,一些线性的提前剪枝判断,写不写都可以过.最主要的是复杂度是同…
Hello everyone, I am a Chinese noob programmer. I have practiced questions on leetcode.com for 2 years. During this time, I studied a lot from many Great Gods' articles. After worship, I always wanted to write an article as they did, and now I take t…
目录 题面 中文题意 比赛惨状 我的走不通的思路 \(m\)是偶数的情况 \(m\)是奇数的情况 题解的思路 另一些思路 源代码 题面 Time limit 3000 ms Memory limit 131072 kB Special judge Yes OS Windows 中文题意 把\(n\)块石头分成\(k\)堆,要求每堆石头的重量之和相等.输出是否可以实现要求.如果可以实现,还要输出每堆石头里每一块石头的重量 比赛惨状 赛场上看见的第一反应--dp?不会.然后就先扔给有点思路队友,写另…
这是小川的第386次更新,第414篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第247题(顺位题号是1033).在a,b和c位置的数字线上有三块石头.每次,你在一个终点(即最低或最高位置的石头)上拾取一块石头,然后将它移动到这些终点之间的空置位置. 形式上,假设石头当前位于x,y,z位置,x <y <z.你在x位置或z位置拾取石头,然后将石头移动到整数位置k,x <k <z且k!= y. 当你不能做任何移动时,游戏结束.例如,当石头处于连续的位置时.…
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 大根堆 日期 题目地址:https://leetcode.com/problems/last-stone-weight/ 题目描述 We have a collection of rocks, each rock has a positive integer weight. Each turn, we choose the two heaviest…
题目描述: 在二维平面上,我们将石头放置在一些整数坐标点上.每个坐标点上最多只能有一块石头. 现在,move 操作将会移除与网格上的某一块石头共享一列或一行的一块石头. 我们最多能执行多少次 move 操作? 示例 1: 输入:stones = [[0,0],[0,1],[1,0],[1,2],[2,1],[2,2]]输出:5示例 2: 输入:stones = [[0,0],[0,2],[1,1],[2,0],[2,2]]输出:3示例 3: 输入:stones = [[0,0]]输出:0 提示:…