Leetcode算法问题讲解
本专栏讲解leetcode的算法题目。
极客李华
CSDN,阿里社区内容合伙人、系统分析师、全网20万粉丝的技术博主,交流合作私信+。欢迎技术交流。
展开
-
矩形总面积计算器:计算两个矩形的总面积,包括重叠区域
本文介绍了一个简单而高效的算法,用于计算两个矩形的总面积(包括重叠区域)。通过计算各自的面积,以及重叠区域的面积,我们可以轻松地得到两个矩形的总面积。这个算法思路清晰,并且在时间复杂度上非常高效。希望本文能够帮助读者理解如何计算两个矩形的总面积,并在实际应用中提供指导。如有任何疑问或建议,请随时提出。原创 2023-07-25 19:32:38 · 1090 阅读 · 0 评论 -
统计满足条件的子集个数
本文解决了一个名为"统计满足条件的子集个数"的问题,并通过回溯法的思路给出了相应的Java代码。我们通过生成数组的所有子集,并根据子集的元素和等条件进行判断和统计,得到满足条件的子集个数。这篇文章希望对您理解问题和代码的解决思路有所帮助。如果您对具体部分还有疑问,请随时提出。# 统计满足条件的子集个数本篇文章解决了一个名为"统计满足条件的子集个数"的问题,并给出了相应的Java代码来解决这个问题。本文解决了一个名为"统计满足条件的子集个数"的问题,并通过回溯法的思路给出了相应的Java代码。原创 2023-07-25 19:26:53 · 118 阅读 · 0 评论 -
中心扩展法求回文子串的长度
通过使用中心扩展法,我们可以高效地求解给定字符串中的最长回文子串。该算法的时间复杂度为O(n^2),其中n为字符串的长度。由于只使用了常数额外空间,因此空间复杂度为O(1)。原创 2023-07-25 14:13:17 · 81 阅读 · 0 评论 -
区间合并(c++,java)
给定一个长度为 n的整数序列,请找出最长的不包含重复的数的连续区间,输出它的长度。共一行,包含一个整数,表示最长的不包含重复的数的连续区间的长度。第二行包含 n个整数(均在 0∼105范围内),表示整数序列。第一行包含整数 n。原创 2023-03-10 21:11:54 · 69 阅读 · 0 评论 -
第k个数(c++, java)
给定一个长度为 n的整数数列,以及一个整数 k,请用快速选择算法求出数列从小到大排序后的第 k 个数。第二行包含 n个整数(所有整数均在 1∼109 范围内),表示整数数列。输入格式第一行包含两个整数 n 和 k。输出一个整数,表示数列的第 k小数。原创 2023-03-10 20:48:58 · 71 阅读 · 0 评论 -
数组元素的目标和
给定两个升序排序的有序数组 A 和 B,以及一个目标值 x。数组下标从 0 开始。请你求出满足 A[i]+B[j]=x 的数对 (i,j)。数据保证有唯一解。输入格式第一行包含三个整数 n,m,x,分别表示 A 的长度,B 的长度以及目标值 x。第二行包含 n 个整数,表示数组 A。第三行包含 m 个整数,表示数组 B。输出格式共一行,包含两个整数 i 和 j。数据范围数组长度不超过 105。同一数组内元素各不相同。1≤数组元素≤109输入样例:4 5 6。原创 2022-12-25 12:26:54 · 100 阅读 · 1 评论 -
最长连续不重复子序列
给定一个长度为 n 的整数序列,请找出最长的不包含重复的数的连续区间,输出它的长度。第二行包含 n 个整数(均在 0∼105 范围内),表示整数序列。共一行,包含一个整数,表示最长的不包含重复的数的连续区间的长度。第一行包含整数 n。原创 2022-12-23 12:35:27 · 462 阅读 · 4 评论 -
合并集合(并查集)
对于每个询问指令 Q a b,都要输出一个结果,如果 a 和 b 在同一集合内,则输出 Yes,否则输出 No。M a b,将编号为 a 和 b 的两个数所在的集合合并,如果两个数已经在同一个集合中,则忽略这个操作;接下来 m 行,每行包含一个操作指令,指令为 M a b 或 Q a b 中的一种。一共有 n 个数,编号是 1∼n,最开始每个数各自在一个集合中。Q a b,询问编号为 a 和 b 的两个数是否在同一个集合中;第一行输入整数 n 和 m。原创 2022-12-23 12:33:31 · 231 阅读 · 5 评论 -
排队打水(Java)
有 n 个人排队到 1 个水龙头处打水,第 i 个人装满水桶所需的时间是 ti,请问如何安排他们的打水顺序才能使所有人的等待时间之和最小?第二行包含 n 个整数,其中第 i 个整数表示第 i 个人装满水桶所花费的时间 ti。输出一个整数,表示最小的等待时间之和。第一行包含整数 n。原创 2022-12-23 00:00:04 · 297 阅读 · 1 评论 -
滑动窗口(C++,Java)
给定一个大小为 n≤106 的数组。有一个大小为 k 的滑动窗口,它从数组的最左边移动到最右边。你只能在窗口中看到 k 个数字。每次滑动窗口向右移动一个位置。以下是一个例子:该数组为 [1 3 -1 -3 5 3 6 7],k 为 3。窗口位置 最小值 最大值你的任务是确定滑动窗口位于每个位置时,窗口中的最大值和最小值。输入格式输入包含两行。第一行包含两个整数 n 和 k,分别代表数组长度和滑动窗口的长度。第二行有 n 个整数,代表数组的具体数值。原创 2022-12-22 23:57:05 · 149 阅读 · 1 评论 -
子矩阵的和
输入一个 n 行 m 列的整数矩阵,再输入 q 个询问,每个询问包含四个整数 x1,y1,x2,y2,表示一个子矩阵的左上角坐标和右下角坐标。接下来 q 行,每行包含四个整数 x1,y1,x2,y2,表示一组询问。接下来 n 行,每行包含 m 个整数,表示整数矩阵。对于每个询问输出子矩阵中所有数的和。共 q 行,每行输出一个询问的结果。−1000≤矩阵内元素的值≤1000。第一行包含三个整数 n,m,q。绿色矩形的面积 = 整个外围面积。+ 重复减去的红色面积。原创 2022-12-20 21:37:12 · 130 阅读 · 1 评论 -
计算逆序对数
逆序对。原创 2022-11-30 10:20:54 · 96 阅读 · 0 评论 -
计算n阶行列式
用拉普拉斯展开式计算n阶行列式。原创 2022-11-30 10:19:42 · 372 阅读 · 0 评论 -
排列python
给定一个整数 n,将数字 1∼n 排成一排,将会有很多种排列方法。现在,请你按照字典序将所有的排列方法输出。按字典序输出所有排列方案,每个方案占一行。共一行,包含一个整数 n。原创 2022-11-24 14:31:28 · 367 阅读 · 0 评论 -
蛇形矩阵python
输入两个整数 n 和 m,输出一个 n 行 m 列的矩阵,将数字 1 到 n×m 按照回字蛇形填充至矩阵中。矩阵占 n 行,每行包含 m 个空格隔开的整数。输入共一行,包含两个整数 n 和 m。具体矩阵形式可参考样例。输出满足要求的矩阵。原创 2022-11-24 14:21:59 · 3288 阅读 · 0 评论 -
求实数的整数次幂(循环版)(高效)(位运算解题)
说明:参数 x 为底数,n 为指数。若参数正确,则函数值为 x 的 n 次幂。若参数不正确(当底数为 0 且指数为 0 或负数时无意义),则报告错误,函数值为0。// 这个位运算是大部分都不熟悉也不敢用的东西,但是确实是编程里面的一个非常重要的工具。请编写函数,用循环语句以最快的方法求任意实数的任意整数次幂。要求:不得调用 pow 函数,不得使用递归方法。指数 二进制 公式。原创 2022-11-21 09:52:52 · 837 阅读 · 1 评论 -
7-7 念数字 (15 分)(用数组简化判断过程)
输入一个整数,输出每个数字对应的拼音。当整数为负数时,先输出fu字。十个数字对应的拼音如下:0: ling1: yi2: er3: san4: si5: wu6: liu7: qi8: ba9: jiu输入格式:输入在一行中给出一个整数,如:1234。提示:整数包括负数、零和正数。输出格式:在一行中输出这个整数对应的拼音,每个数字的拼音之间用空格分开,行末没有最后的空格。如 yi er san si。原创 2022-11-21 09:50:26 · 161 阅读 · 0 评论 -
7-6 连续因子
7-6 连续因子 (20 分)一个正整数 N 的因子中可能存在若干连续的数字。例如 630 可以分解为 3×5×6×7,其中 5、6、7 就是 3 个连续的数字。给定任一正整数 N,要求编写程序求出最长连续因子的个数,并输出最小的连续因子序列。输入格式:输入在一行中给出一个正整数 N(1原创 2022-11-21 09:45:17 · 157 阅读 · 0 评论 -
化繁就简(结构体在算法中的运用)
某城镇进行人口普查,得到了全体居民的生日。现请你写个程序,找出镇上最年长和最年轻的人。这里确保每个输入的日期都是合法的,但不一定是合理的——假设已知镇上没有超过200岁的老人,而今天是2014年9月6日,所以超过200岁的生日和未出生的生日都是不合理的,应该被过滤掉。输入描述:输入在第一行给出正整数N,取值在(0, 105];随后N行,每行给出1个人的姓名(由不超过5个英文字母组成的字符串)、以及按“yyyy/mm/dd”(即年/月/日)格式给出的生日。题目保证最年长和最年轻的人没有并列。原创 2022-11-21 09:41:34 · 124 阅读 · 0 评论 -
数字看做字符串的处理方法
*科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式[±][1-9]“.”[0-9]+E[±][0-9]+,即数字的整数部分。现以科学计数法的格式给出实数A,请编写程序按普通数字表示法输出A,并保证所有有效位都被保留。// 分析:一看不知所措,二看不知所措,然后感觉还是要把这个输入科学记数法的数字当字符串处理。对每个测试用例,在一行中按普通数字表示法输出A,并保证所有有效位都被保留,包括末尾的0。只有1位,小数部分至少有1位,该数字及其指数部分的正负号即使对正数也必定明确给出。原创 2022-11-21 09:28:57 · 112 阅读 · 0 评论 -
三维数组解决问题案例(天梯赛座位分配)
通过天梯赛座位分配,这个算法题,我们来理解通过2维以上的数组解决算法问题。原创 2022-11-19 23:46:24 · 206 阅读 · 0 评论 -
最大公约数循环与递归版本
本文讲解,求最大公约数循环与递归版本原创 2022-11-02 19:00:20 · 153 阅读 · 0 评论 -
lowbit()
可以发现变为反码后 x 与反码数字位每一位都不同, 所以当反码加1,成为补码的时候,反码会逢1一直进位直到遇到0,且这个0变成了1,然后就寻找到了,第一个不为0的1的位置,而且这个1前面的数字,全部变成了0.我们希望获得一个数的最低位的1所对应值,那么就需要将这个数字与自己的补码取与,那么计算机中一个数的补码是啥了,没错就是这个数字的负数(负数就是正数的反码+1),十进制 二进制 最低位的1所对应的值对应的二进制数 最低位的1所对应的值对应的十进制数。的二进制表达式中最低位的1所对应的值。原创 2022-10-24 00:20:03 · 706 阅读 · 0 评论 -
01背包问题
背包问题是dp(动态规划)经典入门题目集合,里面的01背包问题也是一切的起点,作者当初学习此算法的时候,把各种教学视频看了十几遍,加上老师的讲解,还有很多博客,最后还是一知半解,但是随着时间积累,慢慢的在许久之后明白了这个算法,这也是我的一个学习算法的建议,在入门一个算法的时候,不必短时间内理解它的含义,记住模板,然后在未来的某个时刻,会理解它的。原创 2022-10-24 00:04:57 · 93 阅读 · 0 评论