首页
AI Coding
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
算法
专业抄代码选手
创建于2024-07-08
订阅专栏
一些算法题目
暂无订阅
共216篇文章
创建于2024-07-08
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
【leetcode】66. 加一
题目肯定是想要用贴近题意的方式来做 转数字做法 大数溢出问题:digits 可能非常长(100 位以上),用普通 Number 会精度丢失; 解决方案:用 BigInt,后缀 n 表示大整数; 返回值
【leetcode】9. 回文数
判断回文的话,可以利用reverse函数来进行反转,但是reverse是数组的操作函数,这里就要来进行下转换了 字符串解法 数字解法 完整的反转 📝 说明: 保存原始数字 origin 使用取模和除法
【leetcode】201. 数字范围按位与
这一题,如果就用最耿直的思路来做,那就是遍历所有数字,然后做位运算,但是就简单的看下第三个测试用例,这个时间复杂度就有点高了,虽说是线性的,但也很没必要。 这里就要观察下了 如果要计算这里的[5,8]
【leetcode】137. 只出现一次的数字 II
136题是其他数字都存在偶数次(2次),然后找出存在一次的数字。这题是其他数字存在三次,找出存在一次的数字。 我们知道,所有整数在计算机中都用二进制表示(32 位),因此我们可以遍历每一位,对每一位上
【leetcode】136. 只出现一次的数字
这题也是位运算,利用了异或的性质 异或操作的性质: a ^ a = 0 (相同的数异或为 0) a ^ 0 = a 因此: 如果一个数出现两次,它们异或结果是 0; 最后只剩下那个出现一次的数字。
【leetcode】191. 位1的个数
做完190这一题,对于leetcode-191这一题就比较简单了,涉及到其中的 & 运算符,还有一个右移 >> 。 这里的 n & 1 来计算最后一位是否是1 >>>=来将n的最低位移除,并赋值给自身
【leetcode】190. 颠倒二进制位
 这一题涉及的操作符较多 | 操作符 | 含义说明 |
【leetcode】67. 二进制求和
这道题思路比较简单,关键在于模拟二进制加法的过程,记录每一位的 进位(carry) 并处理即可。 我们可以从字符串的末尾开始,从低位逐位相加。每一轮使用一个变量 sum 记录当前位的计算结果: 把当
【leetcode】162. 寻找峰值
这一题需要找到峰值,看题目里面的要求,这里的左右边界都是-Infinity,所以对于在左边界上的递减,右边界上的递增,此时的边界都是符合条件的。 这里用二分查找来寻找 看斜率,如果此时mid还有mid
【leetcode】210. 课程表 II
这一题和207题一样,只不过207题需要返回是否可以完成(true/false),这一题需要返回其中的一种学习路线。 这里的处理方式和207题一样,都是构建邻接表还有入度表,然后从入度为0的课程入手,
【leetcode】207. 课程表
这道题的本质是判断:是否可以完成所有课程,即判断图中是否存在环。 换句话说:从图中的某个节点出发,是否能够遍历完整个有向图,不形成环。 为了解决这个问题,我们可以使用拓扑排序(Kahn’s Algor
【leetcode】133. 克隆图
题目要求我们复制一个无向图,输入是图中某个节点。由于是无向图,且可能存在环,如果不记录已经访问过的节点,会导致无限递归或重复创建节点。 核心思路 为避免重复创建或进入死循环,我们可以使用一个 Map(
【leetcode】130. 被围绕的区域
这题的思路和lc-200有相似之处,依旧是通过 DFS(或 BFS)来“遍历连通区域并做标记”。但与 200 不同的是,这道题需要我们区分 “被包围的 O” 和 “未被包围的 O” 。 解题思路
树的前中后序
在处理树结构时,最基础也最重要的操作之一就是遍历。常见的遍历方式主要有三种:前序、中序 和 后序(其实广义上还有层序遍历等,但这里聚焦于这三种深度优先遍历方式)。 使用 递归 实现这三种遍历非常直观且
【leetcode】530. 二叉搜索树的最小绝对差
这里首先要理解,什么叫做二叉搜索树,也就是左子树、根节点、右子树的值依次增大,中序遍历二叉搜索树的时候,序列是递增的。 所以这里可以利用这一性质来解题。 在中序遍历的时候来做判断,并把最小值保存即可。
【Leetcode】103.二叉树的锯齿形层序遍历
这也是一题比较典型的层次遍历,但是不同的是,这里的层次的顺序不是每次都是正序,而是一正一反相互交替。 解法 这里需要记录一个标记,记录正反即可。之前我们层次遍历都是在每一层之中进行push,这里的pu
树的两种遍历:DFS & BFS
在处理树结构的问题时,深度优先遍历(DFS) 和 广度优先遍历(BFS) 是两种常见的搜索方式。它们都可以用来查找树中的目标节点,但由于遍历方式不同,在某些场景下效率也会有所区别。 例如: 想要找
【leetcode】222. 完全二叉树的节点个数
这一题,直接用BFS,这种比较耿直的办法可以做出来,就是时间复杂度比较高,是O(n)。 BFS 从上往下,从左往右,一个一个数过去。 stack 优化版 利用满二叉树的性质来做这题。至于满二叉树的性质
【leetcode】129. 求根节点到叶节点数字之和
这也是一道比较典型的DFS题目,深度遍历记录其中信息,最后按要求给交付即可,这里的交付是求和。 上面代码的思路很清晰,使用currentNum来记录每一轮的值,然后遇到叶子结点就累加sum,再retu
【leetcode】112. 路径总和
这道题比较典型,是一个DFS的解法。深度优先搜索,来遍历所有可能性。 递归子树的时候,要减去当前节点的val,然后进入到下一节点。 跳出循环到条件就是,左右子树都为空,此时就是叶子结点,那么就需要判断
下一页