
leetcode
文章平均质量分 72
zwwhsxq
思路是在写作的过程中产生的,2022年,我要多学多写
展开
-
判断链表是否有环 及 寻找环的入口
判断链表是否有环及寻找环入口的思路、证明、代码原创 2022-07-10 17:20:57 · 1867 阅读 · 0 评论 -
LeetCode5. 深度优先搜索,回溯,广度优先搜索
深度优先搜索(Depth-first Search, DFS),广度优先搜索(breadth-first Search, BFS)一、简介和对比思考1、怎么理解DFS和BFS的区别?DFS: 是按深度遍历的,在搜索到一个节点时,立即对该节点遍历其左右子节点。因此需要用先入后出的栈来实现。也可以通过与栈等价的递归来实现。BFS:是按层遍历的,因此需要用先入先出的队列来实现。由于BFS的按层遍历,它常被用来处理最短路径问题。DFS:理解如何通过栈或者递归,实现二叉树中和为某固定值的路径的搜索原创 2021-09-05 18:05:29 · 183 阅读 · 0 评论 -
LeetCode4. 排序算法
1、快速排序:主要思路:参考https://www.cnblogs.com/skywang12345/p/3596746.html选择一个分界值,一般初始可以是数组的第一个元素。第一次排序:使得大于等于该元素的值都在右边,小于该元素的值都在左边。相当于将数组分成两个独立的子数组,再递归对两个子数组进行排序。void quick_sort(vector<int> &nums, int l, int r) { if (l + 1) >= r return; int原创 2021-08-28 19:27:54 · 226 阅读 · 0 评论 -
LeetCode 3. 二分查找
1. 算法解释二分查找,也称二分法或折半查找。通过将待查找区间分为两部分并都取一部分继续查找,将查找的复杂度大大减少。二分查找适用于对有序或部分有序的数组进行查找。2. LeetCode 69 求X的平方根https://leetcode-cn.com/problems/sqrtx/submissions/题目:计算并返回x的平方根,其中x是非负整数。返回结果向下取整。思路:如果x>0, x的平方根一定是在[1,x]区间内的,而这个区间是增序的,所以可以对它进行二分查找。写的...原创 2021-08-22 19:49:23 · 73 阅读 · 0 评论 -
LeedCode 2. 玩转双指针
1.算法解释:双指针主要用于遍历数组,两个指针指向不同的元素。如果两个指针指向同一个数组,但是遍历方向相反,则可以用来搜索。通常这个数组时排好序的。2. 指针函数与函数指针:指针函数是指返回类型为指针的函数,函数指针是指向函数的指针。可详细通过如下示例来理解。//addition是指针函数,一个返回类型为指针的函数int* additition(int a, int b) { int* sum = a + b; return sum;}int subtractio.原创 2021-08-22 16:55:37 · 83 阅读 · 0 评论 -
LeetCode 1. 贪心算法
1、算法解释保证每次操作都是局部最优,从而使最后得到的结果是全局最优的。2、分配问题leetcode 455: Assign Cookies一堆孩子和一堆饼干,最多有多少孩子可以吃饱?思路:将孩子的饥饿度和饼干大小,都按照从小到大排序,给饥饿度最小的孩子喂刚刚好的饼干,这样最后喂饱的孩子数量就是最多的。int findContentChildren(vector<int>& children, vector<int>& cookies) {.原创 2021-08-16 13:22:03 · 118 阅读 · 0 评论