jjzjj

leetcode

全部标签

【算法刷题】贪心算法题型及方法归纳

贪心算法特点从局部最优解推出全局最优,并且想不出来反例。贪心没有明确有规律的套路,而对于贪心的难题,更多的是难在思路上,要用一些转化问题的思维方法,然后,再根据局部最优解推出全局最优。参考文章:贪心算法理论基础1、发饼干先排序,按饼干从小到大的顺序,依次分给从小到大排序的小朋友。127、【贪心算法】leetcode——455.分发饼干:DFS+双指针法(C++版本)2、0水准线count用来记录当前子序列的相加和,当count大于0时,继续相加。当count小于或等于0时,重新开始选取子序列。以count是否为0判定的原因:若后续为正数时,没有这个负数更好,若后续为负数时,越加只会越小)129

LeetCode刷题中出现的奇怪的错误及解决办法

目录前言: 案例1:案例2: 案例3:案例4:前言:一般我在刷leetcode题的时候既不喜欢在Playground也不喜欢在本地编译器里面打代码,而是直接在题目后的窗口里写代码。于是对于我这种氪不起金的玩家来说,经常就会出现奇怪的bug,找了半天也找不到。这里就对以前遇到过的问题进行总结。 案例1:我找了老半天问题在哪里。发现不管在for循环后面加什么语句都会出错。最后放到visualstudio里面才发现了错误。。。错误原因:c++注释行尾的反斜杠会将下一行也注释掉(即连接本行与下一行)!解决办法:避免注释行末尾出现\(除非故意的)总结:不得不承认有时不屑一顾的小基础能够在偶然的时候把自己

算法训练第五十天 | 123.买卖股票的最佳时机III、188.买卖股票的最佳时机IV

动态规划part11123.买卖股票的最佳时机III题目描述思路拓展188.买卖股票的最佳时机IV题目描述思路易错点123.买卖股票的最佳时机III题目链接:123.买卖股票的最佳时机III参考:https://programmercarl.com/0123.%E4%B9%B0%E5%8D%96%E8%82%A1%E7%A5%A8%E7%9A%84%E6%9C%80%E4%BD%B3%E6%97%B6%E6%9C%BAIII.html视频讲解:https://www.bilibili.com/video/BV1WG411K7AR题目描述给定一个数组,它的第i个元素是一支给定的股票在第i天的价格

【Java牛客&力扣刷题特辑第五期】——诸佬们这些坑你们都踩过了吗?牛客网经典笔试题目每天刷两道,快乐充实一整天

✨✨【Java牛客&力扣刷题特辑第五期】——诸佬们这些坑你们都踩过了吗?✔✨前言🎉🎉大家好!好久不见我是青花瓷,今天你刷题了吗?文章目录,从易到难,层层递进,如果每一道题都吃透,你一定会在做题方面有质的飞跃,关注我,一起学习算法,一起分享好的题型。博主将持续更新算法,大厂笔试题,经典算法题,易错题,如果觉得不错,点点赞支持一下,如果有错误的地方,欢迎指正✨✨下一期:算法篇之回溯算法作者介绍:🎓作者:偷偷敲代码的青花瓷✨👀作者的Gitee:代码仓库📌系列文章推荐:✨1.Java牛客&力扣刷题特辑第一期✨2.Java牛客&力扣刷题特辑第二期✨3.Java牛客&力扣刷题特辑第三期✨4.Java牛客&

leetcode每日一题:62. 不同路径

系列:动态规划语言:java难度:中等题目来源:Leetcode62.不同路径开启动态规划章节了!!欢迎您在留言和我一起完成每日打卡,以后每天8点半前发布每日一题。原题链接:Leetcode62.不同路径题目一个机器人位于一个mxn网格的左上角(起始点在下图中标记为“Start”)。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?示例1:示例2:输入:m=3,n=2输出:3解释:从左上角开始,总共有3条路径可以到达右下角。向右->向下->向下向下->向下->向右向下->向右->向下示例3:输入:m=7,n=3输出:28

代码随想录day44

完全背包其实就是每个物品可以使用无数次,给我们一个容器,装满这个容器的最大价值是多少。思路:如果求组合数就是外层for循环遍历物品,内层for遍历背包。如果求排列数就是外层for遍历背包,内层for循环遍历物品。完全背包的组合和排序518.零钱兑换II题目给你一个整数数组coins表示不同面额的硬币,另给一个整数amount表示总金额。请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回0。假设每一种面额的硬币有无限个。题目数据保证结果符合32位带符号整数。示例1:输入:amount=5,coins=[1,2,5]输出:4解释:有四种方式可以凑成总金额:5=55=2

Golang每日一练(leetDay0022)

目录64.最小路径和MinimumPathSum  🌟🌟65.有效数字ValidNumber  🌟🌟🌟66.加一PlusOne  🌟🌟每日一练刷题专栏 🌟Golang每日一练专栏Python每日一练专栏C/C++每日一练专栏Java每日一练专栏64.最小路径和MinimumPathSum给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。示例1:输入:grid=[[1,3,1],[1,5,1],[4,2,1]]输出:7解释:因为路径1→3→1→1→1的总和最小。示例2:输入:grid=[[1,2

LeetCode:217(Python)—— 存在重复元素(简单)

存在重复元素概述:给你一个整数数组nums。如果任一值在数组中出现至少两次,返回true;如果数组中每个元素互不相同,返回false。输入:nums=[1,2,3,1]输出:true输入:nums=[1,2,3,4]输出:false输入:nums=[1,1,1,3,3,4,3,2,4,2]输出:true方法一:Counter思路:用Counter方法统计出现的次数,然后返回最大值进行判断即可。#Counter方法#用Counter方法统计出现的次数,然后返回最大值进行判断即可。classSolution:defcontainsDuplicate(self,nums:List[int])->bo

Leetcode.1125 最小的必要团队

题目链接Leetcode.1125最小的必要团队Rating:2251题目描述作为项目经理,你规划了一份需求的技能清单req_skills,并打算从备选人员名单people中选出些人组成一个「必要团队」(编号为i的备选人员people[i]含有一份该备选人员掌握的技能列表)。所谓「必要团队」,就是在这个团队中,对于所需求的技能列表req_skills中列出的每项技能,团队中至少有一名成员已经掌握。可以用每个人的编号来表示团队中的成员:例如,团队team=[0,1,3]表示掌握技能分别为people[0],people[1],和people[3]的备选人员。请你返回任一规模最小的必要团队,团队成

Leetcode笔记3

15.三数之和题目链接排序+双指针(C++)排序,方便去重固定一个数字nums[k],使用双指针i,j。i从k+1开始,j从n-1开始不断向中间逼近直到i>=j,然后k++。判断nums[i]+nums[j]+nums[k]是否等于0,大于0或者小于0。classSolution{public:vector>threeSum(vector&nums){intk=0,n=nums.size();vector>ans;sort(nums.begin(),nums.end());if(ntemp(3);while(ki&&nums[j]==nums[j-1]){j--;}i++;j--;}elsei