草庐IT

leetcode题解

全部标签

Leetcode刷题第一天-贪心

 455-分饼干链接:455.分发饼干-力扣(LeetCode)优先使用最小饼干满足最小胃口,一个娃只能分一个饼干T_T不能加1classSolution:2deffindContentChildren(self,g:List[int],s:List[int])->int:3ifnotgornots:return04g.sort()5s.sort()6i,j,re=0,0,07whileTrue:8if(i==len(g)orj==len(s)):break9if(s[j]>=g[i]):10re+=111i+=112j+=113else:14j+=115returnre135-分糖果链接:1

算法沉淀——二分查找(leetcode真题剖析)

算法沉淀——二分查找01.二分查找02.在排序数组中查找元素的第一个和最后一个位置03.搜索插入位置04.x的平方根05.山脉数组的峰顶索引06.寻找峰值07.寻找旋转排序数组中的最小值08.LCR173.点名二分查找(BinarySearch)是一种在有序数组中查找特定元素的算法。该算法的基本思想是通过每一次比较,将查找范围缩小一半,最终找到目标元素或者确定目标元素不存在。二分查找的步骤:初始化:定义两个指针,left和right,分别指向数组的起始和结束位置。循环条件:在left的条件下,执行以下步骤。计算中间位置:计算中间位置的索引mid,可以使用mid=(left+right)/2或者

洛谷题解 B3621,B3622,B3623(DFS)

目录1.B3621枚举元组2.B3622枚举子集3.B3623枚举排列1.B3621枚举元组枚举元组题目描述nnn元组是指由nnn个元素组成的序列。例如(1,1,2)(1,1,2)(1,1,2)是一个三元组、(233,254,277,123)(233,254,277,123)(233,254,277,123)是一个四元组。给定nnn和kkk,请按字典序输出全体nnn元组,其中元组内的元素是在[1,k][1,k][1,k]之间的整数。「字典序」是指:优先按照第一个元素从小到大的顺序,若第一个元素相同,则按第二个元素从小到大……依此类推。详情参考样例数据。输入格式仅一行,两个正整数n,kn,kn,

!搜索(DFS&&BFS)!(校内题解,题目来自洛谷和百练poj)

题目:1.迷宫——洛谷搜索题单16052.马的遍历——洛谷搜索题单14433.填涂颜色——洛谷搜索题单11624.棋盘问题——百练13215.马走日——百练41236.红与黑——百练28167.奇怪的电梯——洛谷搜索题单11358.迷宫问题——百练41279.MeteorShowerS——洛谷搜索题单289510. CornMazeS——洛谷搜索题单182511.八皇后CheckerChallenge——洛谷搜索题单121912.单词接龙——洛谷搜索题单1019本文主要目的是自我记录🤪🌹搜索搜索主要划分为 深度优先搜索(dfs)&& 广度优先搜索(bfs),可分,那两者肯定有区别,先说说深搜。

Kafka详解及常见面试问题解析(值得珍藏)

点击下载《Kafka详解及常见面试问题解析(值得珍藏)》1.定义Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。它是一种高吞吐量的分布式发布订阅消息系统,可以处理消费者在网站中的所有动作流数据。这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。对于像Hadoop一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消息。1.1消息

Leetcode每日一题周汇总 (12.24-12.30)

Leetcode每日一题周汇总(12.24-12.30)1.Sunday(12.24)题目链接:1954.收集足够苹果的最小花园周长-力扣(LeetCode)题目描述:给你一个用无限二维网格表示的花园,每一个整数坐标处都有一棵苹果树。整数坐标(i,j)处的苹果树有|i|+|j|个苹果。你将会买下正中心坐标是(0,0)的一块正方形土地,且每条边都与两条坐标轴之一平行。给你一个整数neededApples,请你返回土地的最小周长,使得至少有neededApples个苹果在土地里面或者边缘上。|x|的值定义为:如果x>=0,那么值为x如果x,那么值为-x示例1:输入:neededApples=1输出

【刷题】 leetcode 面试题 08.05.递归乘法

递归乘法1题目描述2思路一(返璞归真版)3思路二(二进制乘法器版)4思路三(变态版)Thanks♪(・ω・)ノ谢谢阅读下一篇文章见!!!1题目描述来看题目描述,真可谓大道至简的描述啊。让我们不使用*来实现乘法运算。2思路一(返璞归真版)首先我就想到了乘法的加法表示:A*B=B个A相加。也可得到递推公式:A*B=A*(B-1)+A我们很容易就可以构造出递归算法intmultiply(intA,intB){ //B为1直接返回Bif(B==1)returnA;returnA+multiply(A,B-1);}来看运行效果:3思路二(二进制乘法器版)接下来我们换一种方法,大家一定记得小时候计算乘法的

算法沉淀——滑动窗口(leetcode真题剖析)

算法沉淀——滑动窗口01.长度最小的子数组02.无重复字符的最长子串03.最大连续1的个数III04.将x减到0的最小操作数05.水果成篮06.找到字符串中所有字母异位词07.串联所有单词的子串08.最小覆盖子串滑动窗口算法是一种用于解决数组或列表中子数组或子序列问题的有效技巧。它通过维护一个可变大小的窗口(通常是一个连续的子数组或子序列),在数据流中滑动该窗口来进行问题求解。这种方法在一维数组和二维数组中都有应用,并且在字符串处理中也很常见。滑动窗口算法的基本思想是使用两个指针,通常是左指针(left)和右指针(right)来定义窗口,通过移动这两个指针,调整窗口的大小和位置,从而在不重复计

【Py/Java/C++三种语言OD2023C卷真题】20天拿下华为OD笔试之【模拟】2023C-螺旋数字矩阵【欧弟算法】全网注释最详细分类最全的华为OD真题题解

文章目录题目描述与示例题目描述输入描述输出描述示例输入输出解题思路代码PythonJavaC++时空复杂度华为OD算法/大厂面试高频题算法练习冲刺训练题目描述与示例题目描述疫情期间,小明隔离在家,百无聊赖,在纸上写数字玩。他发明了一种写法:给出数字个数n和行数m(0,从左上角的1开始,按照顺时针螺旋向内写方式,依次写出2,3,...,n,最终形成一个m行矩阵。小明对这个矩阵有些要求:每行数字的个数一样多列的数量尽可能少填充数字时优先填充外部数字不够时,使用单个*号占位输入描述两个整数,空格隔开,依次表示n、m输出描述符合要求的唯一短阵示例输入94输出123**49*5876解题思路注意,本题和

算法沉淀——双指针算法(leetcode真题剖析)

算法沉淀——双指针算法01.移动零02.复写零03.快乐数04.盛最多水的容器05.有效三角形的个数06.和为s的两个数字07.三数之和08.四数之和双指针算法(TwoPointerAlgorithm)是一种常用于数组(或链表)操作的算法技巧。它的核心思想是通过维护两个指针,在数组中高效地解决一些问题,这里的指针不一定是真实的指针,是一种抽象的概念,比如数组的下标,C++的迭代器等等。这两个指针可以分别指向数组的不同位置,也可以分别指向数组的开始和结束。常见的双指针算法有两种类型:快慢指针和左右指针。快慢指针:用于解决一些查找或判断问题,比如判断链表是否有环、找到链表的中间节点等。快指针每次移