首页
首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
算法
星空海绵
创建于2023-09-25
订阅专栏
1题提神醒脑,2题永不疲劳,3题长生不老。
等 12 人订阅
共19篇文章
创建于2023-09-25
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
算法基础之排序算法
1.选择排序 定义 开启一个循环,每轮从未排序区间选择最小的元素,将其放到已排序区间的末尾。 代码 复杂度 2.冒泡排序 定义 通过连续地比较与交换相邻元素实现排序。这个过程就像气泡从底部升到顶部一样
LeetCode热题100技巧题解析(完结,撒花!)
1.只出现一次的数字 ⭐ 思路 要在线性时间复杂度内找到只出现一次的元素并使用常量的额外空间,可以使用 异或 操作。 异或操作的特点如下: 任何数字与0进行异或操作结果仍然是那个数字: num ^=
LeetCode热题100多维动态规划题解析
1.不同路径 ⭐ 思路 解这题依然是使用动态规划的方法,核心思路如下: 定义一个二维数组 dp,其中 dp[i][j] 表示从起始点到点 (i, j) 的路径数量。 初始化条件: 当 i = 0 或
LeetCode热题100动态规划题解析
1.爬楼梯 ⭐ 思路 这个问题实际上是一个经典的动态规划问题。我们可以这样思考: 如果你在第 i 阶,那么你可能是从第 i−1 阶爬上来的,也可能是从第 i−2 阶爬上来的。 为了到达第
LeetCode热题100贪心算法题解析
1.买卖股票的最佳时机 ⭐ 思路 这个问题的核心思路是找到最低的买入价格和最高的卖出价格,同时确保卖出的日期在买入日期之后。 为了实现这一目标,我们可以遍历股票价格数组,对于每一天的价格: 更新最低买
LeetCode热题100堆题解析
1.数组中的第K个最大元素 ⭐ 思路 直接排序返回。 代码 2.前 K 个高频元素 ⭐ 思路 直接先拿一个对象统计一下每个元素出现的次数,然后根据次数从大到小排序,最后截取前k个元素即是高频元素。 代
LeetCode热题100栈题解析
1.有效的括号 ⭐ 思路 解这题的思路就是先用一个栈去收集遇到的左括号,遇到右括号的时候就将栈里收集的左括号进行弹出匹配,看是否能匹配上。字符串中的左括号按照它们的出现顺序被推入栈,而右括号在出现时则
LeetCode热题100二分查找题解析
1.搜索插入位置 ⭐ 思路 解这题的思路就是使用二分查找不断的缩小查找范围。具体做法就是拿左右两个指针去缩小查找范围。 初始化两个指针:一个在数组的开始位置(left),另一个在数组的结束位置(rig
LeetCode热题100回溯题解析
1.全排列 ⭐ 思路 解这题的思路是使用回溯算法。 回溯函数定义:定义一个回溯函数,该函数接受当前的排列作为参数。 结束条件:当当前排列的长度与输入数组的长度相等时,我们找到了一个有效的排列。 选择与
LeetCode热题100图论题解析
1.岛屿数量 ⭐ 思路 这题可以使用深度优先搜索(DFS)。每次我们找到一个陆地单元格,我们都会通过深度优先搜索找到与其连接的所有陆地,并将它们都标记为已访问。这样,每个岛屿都只会被计数一次。 代码
LeetCode热题100二叉树题解析(下)
1.二叉树的中序遍历 ⭐ 见上篇文章:LeetCode热题100二叉树题解析(上) 2.二叉树的最大深度 ⭐ 思路 从上篇文章我们学到了层序遍历,用的时候来了,不过有点大材小用了,但也没关系。找最大深
LeetCode热题100二叉树题解析(上)
前言 二叉树这节分两部分,首先要讲二叉树必须讲一下二叉树的遍历,就像数组链表一样,最基础的操作肯定是遍历,那么二叉树要怎样遍历呢?大家肯定知道使用递归和迭代,我下面的代码都是基于迭代的。前序、中序、后
LeetCode热题100链表题解析
1.相交链表 ⭐ 思路 解这题的思路可以使用双指针。首先拿一个指针遍历链表A,当遍历到链表A末尾之后,让指针再遍历B,在遍历链表A的同时,拿另一个指针去遍历链表B,当遍历到链表B的末尾时,再去遍历链表
LeetCode热题100矩阵题解析
1.矩阵置零 ⭐ 思路 思路1 这题题目要求使用原地算法,那我们就需要使用矩阵中的内容去记录哪些位置是需要置0的。首先我们使用第一行和第一列来记录需要置0的位置。 利用原矩阵的第一行和第一列来记录该行
LeetCode热题100普通数组题解析
1.最大子数组和 ⭐ 思路 这题是标准的Kadane算法的应用,这是一种动态规划的算法,Kadane算法是一种高效解决最大子数组和问题的方法。其核心思想是迭代遍历数组,同时保存两个累计值:当前连续子数
LeetCode热题100子串题解析
1.和为 K 的子数组 ⭐⭐ 思路 这题可以使用前缀和的思路。 前缀和:对于数组中的每一个位置 i,都可以求一个从位置 0 到位置 i 的累加和,称之为“前缀和”。假如位置 j 到位置 i (j <
LeetCode热题100滑动窗口题解析
1. 无重复字符的最长子串 ⭐ 思路 通过动态地移动滑动窗口来维护一个始终不包含重复字符的子字符串,同时记录并更新这个子字符串的最大长度。 代码 2.找到字符串中所有字母异位词 ⭐ 思路 1.首先使用
LeetCode热题100双指针题解析
1.移动零 ⭐ 1.思路 这题可以使用快慢指针,使用快指针遍历整个数组,快指针找到不是0的值,就交换 nums[left] 和 nums[right] 的位置。当 fast 指针到达数组的末尾时,所有
LeetCode热题100前3题解析
哈希 1.两数之和 ⭐ 经典LeetCode第一题。 代码: 2.字母异位词分组 ⭐ 思路:将数组中的每个字符串进行排序,然后排序相同的push到同一个数组中。 代码: 3.最长连续序列 ⭐⭐ 思路: