- 博客(55)
- 收藏
- 关注
原创 (深搜 + 广搜 + 哈希) LeetCode 690. 员工的重要性
本题属于搜索的基本题目,感兴趣的同学可以练习一下。深搜时间复杂度:O(N);深搜空间复杂度:O(N)。广搜时间复杂度:O(N + E);广搜空间复杂度:O(N)。
2024-08-26 09:21:58
759
原创 (贪心) LeetCode 135. 分发糖果
本题理解起来很简单,但是真正做起来并不简单,需要将思路梳理好,只要多做就能理解,加油!!!时间复杂度:O(n);空间复杂度:O(n)。
2024-08-24 19:27:15
477
原创 (贪心) LeetCode 1005. K 次取反后最大化的数组和
本题两种做法都能通过,但是我们更将以使用后面的做法,因为在时间以及空间复杂度上都简洁了很多,贪心本就是需要自己锻炼的一种思想,如果使用库函数的话,就没有很好的贪心思想体现了。(1). 优先队列时间复杂度:O(nlogn);空间复杂度:O(n)。(2). 原数组操作时间复杂度:O(nlogn);空间复杂度:O(1)。
2024-08-23 14:42:53
516
原创 (贪心) LeetCode 45. 跳跃游戏 II
本题相较于之前的题比较有难度,建议大家可以多加练习。时间复杂度:O(n);空间复杂度:O(1)。
2024-08-23 13:41:09
843
原创 (贪心) LeetCode 55. 跳跃游戏
贪心是思想,只有不断锤炼才能做的懂题目,继续加油,相信自己!!!时间复杂度:O(n);空间复杂度:O(1)。
2024-08-15 18:09:42
329
原创 (贪心) LeetCode 122. 买卖股票的最佳时机 II
贪心算法的解题可能比较抽象,有时候我的叙述可能不是很清晰,但是相信大家可以通过自己的努力解决问题的!时间复杂度:O(n);空间复杂度:O(1)。
2024-08-15 17:43:02
355
原创 (贪心) LeetCode 53. 最大子数组和
贪心是一种思想,并没有固定的模板使用,不像回溯一样,贪心只有通过多刷题,锻炼思想,在遇到题目的时候能够找到最优的解法就可以,大家加油!!!时间复杂度:O(n);空间复杂度:O(1)。
2024-08-15 17:16:17
242
原创 (贪心) LeetCode 376. 摆动序列
这个题目还是比较绕的,需要考虑很多种情况,我感觉是比较难的一道题目,刚开始做的时候确实有点难懂,但是大家一定要多去看,多去理解,在本子上列举情况去分析,这样才能有进步,加油!!!。时间复杂度:O(n);空间复杂度:O(1)。
2024-08-14 17:56:07
873
原创 (贪心 + 双指针) LeetCode 455. 分发饼干
本题是贪心的入门题目,可以锻炼对贪心的认知和思想,希望大家可以有效去练习,多思考,一起进步!时间复杂度:O(mlogm+nlogn),其中 m 和 n 分别是数组 g 和 s 的长度。对两个数组排序的时间复杂度是 O(mlogm+nlogn),遍历数组的时间复杂度是 O(m+n),因此总时间复杂度是 O(mlogm+nlogn)。空间复杂度:O(logm+logn),其中 m 和 n 分别是数组 g 和 s 的长度。空间复杂度主要是排序的额外空间开销。
2024-08-14 16:46:27
908
原创 (回溯) LeetCode 37. 解数独
本题是回溯算法中的难题了,大家可以先看我之前的题目,然后练习会之前的题目之后再看这题会容易很多。时间复杂度:O(1);空间复杂度:O(1)。
2024-08-14 15:32:19
732
原创 (动态规划) LeetCode 3152. 特殊数组||
时间复杂度:O(n+m),其中 n 表示给定数组 nums 的长度,m 表示给定的查询数组 queries 的长度。空间复杂度:O(n),其中 n 表示给定数组 nums 的长度。我们需要空间来保存每个索引的最长特殊数组的长度。
2024-08-14 14:25:43
369
原创 (回溯) LeetCode 51. N 皇后
本题相对于比较难理解一些,不过相信大家只要能够细心并且静下心来思考就一定能够明白,加油!!!时间复杂度:O(n!空间复杂度:O(n)。
2024-08-12 20:04:09
578
原创 (回溯) LeetCode 47. 全排列||
本题还是属于回溯里面比较进阶的题目吧,建议大家练习,但是一定要懂得每一步的作用以及结果,写代码一定要勤思考,多思考就能印象深刻。加油!!我们共勉!时间复杂度:O(n!* n)空间复杂度:O(n)
2024-08-12 18:56:01
576
原创 (回溯) LeetCode 46. 全排列
本题和之前做过的有一些不一样,不过思路都是大差不差的,大家一定要多思考,实在不会就去找个纸笔盯着代码一行一行把每一步的执行结果写下来,这样会清晰很多。千万不能只看一眼感觉自己会了就不去写了,或者像一些人一样(咳咳,当然不是我啊)直接抄上之后看都不看。加油!!!时间复杂度:O(n!空间复杂度:O(n)。
2024-08-12 17:41:06
503
原创 (字典树) LeetCode 676. 实现一个魔法字典
本题有利于锻炼大家书写代码的思想,值得练习!!!时间复杂度:O(qnl),其中 n 是数组 dictionary 的长度,l 是数组 dictionary 中字符串的平均长度,q 是函数 search(searchWord) 的调用次数。空间复杂度:O(nl),即为数组需要使用的空间。
2024-08-12 16:58:20
862
原创 (回溯) LeetCode 90. 子集||
给你一个整数数组 ,其中可能包含重复元素,请你返回该数组所有可能的 子集(幂集)。解集 不能 包含重复的子集。返回的解集中,子集可以按 任意顺序 排列。示例 1:输入:nums = [1,2,2]输出:[[],[1],[1,2],[1,2,2],[2],[2,2]]示例 2:输入:nums = [0]输出:[[],[0]]提示:这个题和上一道的子集相同,但是这个集合里面有重复的元素,想到该怎么处理了吗,这和之前我们做过的组合|和组合||的问题很相似,就是需要进行去重操作,那么就交给你了
2024-08-11 17:06:47
134
原创 (回溯) LeetCode 78. 子集
给你一个整数数组 ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。示例 1:输入:nums = [1,2,3]输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]示例 2:输入:nums = [0]输出:[[],[0]]提示:这个题就十分简单了,相信大家一定可以自行解决,不做解答。话不多说!!!上代码!!四. 总结时间复杂度:空间复杂度:
2024-08-11 16:55:24
176
原创 (回溯) LeetCode 93. 复原IP地址
本题相较于之前的题目会有一些难以理解,但是多思考就能懂了,所以大家一定要坚持,没有什么学不会,只要你肯吃苦,就一定有吃不完的苦!说错了,报意思,一定会成功的!!加油!!时间复杂度:O(N^2);空间复杂度:O(N)。
2024-08-11 16:21:57
683
原创 (回溯) LeetCode 131. 分割回文串
如果你将前面的题目做了练习的话相信这类题目已经非常简单了吧!!!继续加油!!!时间复杂度:O(n * 2^n)空间复杂度:O(n^2)
2024-08-10 18:19:03
419
原创 (回溯) LeetCode 40. 组合总和II
这个题目比较抽象,但是理解起来也比较容易,循序渐进,逐渐变的强大!!!加油!!!时间复杂度:不会算嘿嘿空间复杂度:O(n)
2024-08-10 17:23:40
587
2
原创 (回溯) LeetCode 39. 组合总和
本题也十分建议练习,巩固回溯的基础同时可以应对相关的变题时间复杂度:O(S),S 为所有可行解的长度之和;空间复杂度:O(target)。
2024-08-10 15:25:17
900
原创 (回溯) LeetCode 77. 组合
对于回溯算法,本身比较抽象,也晦涩难懂,需要多加练习和理解,掌握原理即可,加油!!时间复杂度:O(N∗K);空间复杂度:O(N∗K)。
2024-08-09 17:11:07
426
原创 SpringFramework (内含 Spring 详细介绍)详细入门!!
广义的 Spring:Spring 技术栈(全家桶)广义上的 Spring 泛指以 Spring Framework 为基础的 Spring 技术栈。经过十多年的发展,Spring 已经不再是一个单纯的应用框架,而是逐渐发展成为一个由多个不同子项目(模块)组成的成熟技术,例如Spring MVCSpringBoot等,其中是其他子项目的基础。这些子项目涵盖了从企业级应用开发到云计算等各方面的内容,能够帮助开发人员解决软件发展过程中不断产生的各种实际问题,给开发人员带来了更好的开发体验。
2024-08-05 16:23:24
1173
原创 (贪心) LeetCode 40. 心算挑战
本题考查贪心思想,是一道很好的题目,建议练习!!!时间复杂度:O(n*logn)(其中n为数组长度);空间复杂度:O(1);
2024-08-01 20:34:15
334
原创 (贪心) LeetCode 3111. 覆盖所有点的最少矩形数目
本类题目主要考察对贪心思想的理解和运用,是一道锻炼贪心思想的好题目,建议去练习一下!!时间复杂度:O(nlogn)。空间复杂度:O(logn)。
2024-07-31 16:07:54
478
原创 maven-全套资源,从入门到进阶,全网详细版本!!!建议收藏观看!!!
Maven 是一款为 java 项目构建管理,依赖管理的工具 (软件),使用 Maven 可以自动化构建,测试,打包和发布项目,大大提高了开发效率和质量。核心点掌握目标安装maven安装、环境变量、maven配置文件修改工程创建gavp属性理解、JavaSE/EE工程创建、项目结构依赖管理依赖添加、依赖传递、版本提取、导入依赖错误解决构建管理构建过程、构建场景、构建周期等继承和聚合理解继承和聚合作用、继承语法和实践、聚合语法和实践。
2024-07-27 17:46:51
346
原创 Spring Aop 完整详细讲解!!!建议收藏观看
AOP(Aspect Oriented Programming 面向切面编程) : AOP 是对面向对象编程的一个补充, 在运行时,动态的将代码切入到类的指定方法,指定位置上的编程思想就是面向切面编程。将不同方法的同一位置抽象成一个切面对象,对该切面对象进行编程就是 AOP。优点:1>. 降低模块之间的耦合度2>. 使系统容易扩展3>. 更好的代码复用4>. 非业务代码更加集中, 不分散,便于统一管理5>. 业务代码更简洁纯粹,没有其他代码的影响。
2024-07-22 16:29:30
657
原创 LeetCode 2850. 将石头分散到网格图的最少移动次数(动态规划 + 枚举)
空间复杂度:记 m, n 分别为矩阵的行数以及列数,则为:O(m*n);这类题目对动态规划以及枚举的要求较高,但也是锻炼思想的一道好题目,建议大家可以练习一下。
2024-07-20 15:51:41
446
原创 LeetCode 3096.得到更多分数的最少关卡数目(前缀和,建议练习!)
1. 本题主要考察数组的使用以及前缀和,对前缀和知识点不熟悉的同学可以先学习前缀和之后再做题。2. 对于本题,在进行赋值和求取前缀和的时候,我直接在原数组的基础上进行了操作,如果看不懂的同学可以将possible数组拷贝到一个新的数组中进行操作,这样操作可能易于理解一些,但是空间复杂度会上升。3. 复杂度分析:时间复杂度:O(n),其中 n 表示给定数组的长度。遍历两次 possible 数组即可。空间复杂度:O(1)。
2024-07-19 16:02:14
528
原创 快速排序详细讲解(附C++代码实现)
快速排序是一种高效的排序算法,由东尼·霍尔所发展。它使用分治策略,将一个大数组分成两个较小的子数组,然后递归地对这些子数组进行排序。快速排序的基本思路是通过一趟排序将待排序的数据分割成独立的两部分,其中一部分的所有数据都比另一部分的数据要小,然后再按这两部分的数据分别进行快速排序。这种算法在平均情况下需要Ο(nlogn)次比较来完成排序一个包含n个项目的数组,尽管在最坏的情况下可能需要Ο(n^2)次比较,但这种情况并不常见。
2024-07-17 17:47:17
346
原创 卡码网 28. 子序列中的K中字母
一个序列的子序列是指从原序列中选取部分元素,并保持它们在原序列中的相对顺序所形成的新序列。这意味着在子序列中,元素的相对顺序与它们在原序列中的相对顺序保持一致,但不一定要求是连续的。注意,原序列也可以视为自己的子序列。 现有一个长度为 n 的仅由小写字母组成的字符串 s,求 s 有多少个子序列恰好包含 k 种字母。输入仅包含一组测试数据。测试数据包含两行: 第一行包含两个整数 n 和 k(1 ≤ n ≤ 1000,1 ≤ k ≤ 26),用空格隔开,表示字符串的长度和符合要求的子序列的所需长度。第二行是一个
2024-07-15 14:56:14
146
原创 LeetCode 721. 账户合并(并查集)
时间复杂度:O(nlogn),其中 n 是不同邮箱地址的数量。需要遍历所有邮箱地址,在并查集内进行查找和合并操作,对于两个不同的邮箱地址,如果它们的祖先不同则需要进行合并,需要进行 2 次查找和最多 1 次合并。一共需要进行 2n 次查找和最多 n 次合并,因此时间复杂度是 O(2nlogn)=O(nlogn)。
2024-07-15 14:52:09
692
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人