首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
算法
喜欢小钱钱
创建于2023-11-04
订阅专栏
小菜鸡平时刷题的一些笔记
暂无订阅
共46篇文章
创建于2023-11-04
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
983. 最低票价
一、题目 983. 最低票价 在一个火车旅行很受欢迎的国度,你提前一年计划了一些火车旅行。在接下来的一年里,你要旅行的日子将以一个名为 days 的数组给出。每一项是一个从 1 到 365 的整数。
codeTop100题(42)69. x 的平方根
1. 题目 69. x 的平方根 2. 分析 因为是int类型的,如果平方刚好等于x,那直接返回,否则需要比较一下i 和 i+1 的平方,在之间就返回,注意一下i+1平方超过int类型的范围,需要l
codeTop100题(41)31. 下一个排列
1. 题目 31. 下一个排列 2. 分析 下一个排列,其实是我们要尽可能要让数字比原来大,但是又要数据经历增长比较小。例如 我们就需要从右往左找到一个相邻升序的数,即132中的1和3(132的下一个
codeTop100题(40)4. 寻找两个正序数组的中位数
1. 题目 4. 寻找两个正序数组的中位数 2. 分析 首先我们来看两个case: 转换一下思路,找中位数其实是找一个第 (n+m)/2 + 1 小的数; 例如这个case,其实我们使用两个指针,分别
codeTop100题(38)82. 删除排序链表中的重复元素 II
1. 题目 82. 删除排序链表中的重复元素 II 2. 分析 如果当前节点有重复,则将当前节点和后面重复的节点全部删除。 我们可以通过多个指针,一次遍历删除 首先定义出前置节点 2. 发现next重
codeTop100题(37)199. 二叉树的右视图
1. 题目 199. 二叉树的右视图 2. 分析 本题找到方法后其实很简单,首先我们根据给出的图: 可以得到一个结论,本题其实就是要找每一行最右边的节点,我们之前写过一个题目,二叉树的层序遍历,只需要
codeTop100题(36)93. 复原 IP 地址
1. 题目 93. 复原 IP 地址 2. 分析 IP地址的要求: 4个整数 每个整数都在0-255之间 要求不能有前导0 我们可以尝试使用递归的方式,每次取出来一个满足条件的数字,然后递归调用,最后
codeTop100题(35)704. 二分查找
1. 题目 704. 二分查找 2. 分析 这题是一道很简单的二分查找算法。 定义左右指针、mid指针 计算mid = (左+右)/ 2 当mid等于目标值的时候,返回mid 当mid小于目标值的时候
codeTop100题(34)1143. 最长公共子序列
1. 题目 1143. 最长公共子序列 2. 分析 看题目是一个二维动态规划的题目: 首先需要确定dp数组的含义:字符串a 0-i的子串 和 字符串b0-j的 最长子序列长度; 然后推导递推公式: 当
codeTop100题(33)94. 二叉树的中序遍历
1. 题目 94. 二叉树的中序遍历 2. 分析 二叉树的中序遍历就是按照二叉树的左-中-右的顺序进行遍历,我们可以使用递归实现。 3. 代码
codeTop100题(32)72. 编辑距离
1. 题目 72. 编辑距离 2. 分析 如图,我们定义一个二维数组,表示字符a 的i位置变成 字符b 的j位置需要多少步; 当i位置和j位置的字符相同时:取i-1,j-1的数 否则,取新增(i-1,
codeTop100题(31)56. 合并区间
1. 题目 56. 合并区间 2. 分析 本题需要找到重合的部分,并作为一个大数组,从题目中给出的case来看,我们只需要依次遍历,如果重合,左边取小的,右边取大的就行了。 但是有一个问题:假如说给的
codeTop100题(30)19. 删除链表的倒数第 N 个结点
1. 题目 19. 删除链表的倒数第 N 个结点 2. 分析 我们需要删除倒数第n个节点,但是我们不知道链表的长度是多少。 2.1 先求长度 通过一次遍历,获取链表的长度,然后第二次便利删除倒数第n个
codeTop100题(29)124. 二叉树中的最大路径和
1. 题目 124. 二叉树中的最大路径和 2. 分析 本题要求我们求二叉树的最大路径和,例如下图的15-20-7,就是该二叉树的最大路径; 2.1 路径 那么什么是路径呢?我的理解是只有能连成一条线
codeTop100题(28)143. 重排链表
1. 题目 143. 重排链表 2. 分析 我们需要以以下顺序重新定义链表 主要的问题在于,链表这种数据结构我们没法以1的时间复杂度获取下标i的节点,最终需要n^2的复杂度。 因此,我们考虑将每一个节
codeTop100题(27)300. 最长递增子序列
1. 题目 300. 最长递增子序列 2. 分析 显然是一道动态规划的题目: 明确dp数组含义 以当前节点为结尾的子序列的最大长度 如何初始化 数组所有值都是1 如何遍历 第一层循环从1开始到n-1;
codeTop100题(26)415. 字符串相加
1. 题目 415. 字符串相加 2. 分析 当我们需要计算两个字符串数组的和的时候,我们可以通过两个指针,分别把字符串每一个位置的数字求和,注意进位,当其中一个为空的时候,取另一个字符串的指针对应位
codeTop100题(25)23. 合并 K 个升序链表
1. 题目 23. 合并 K 个升序链表 2. 分析 2.1 方案1 我们可以死循环得遍历每一个链表,一直到所有链表都为空。例如: 空间复杂度是:o(总数 * 链表数 * 链表长度)大概为o(n^4)
codeTop100题(24)160. 相交链表
1. 题目 160. 相交链表 2. 分析 a到交点c1需要两步,b需要三步,怎么能让ab同时走到c1呢? 我们假设a走到交点是长度l1,b走到交点是l2,交点到结尾的长度是l3,我们可以发现一个规律
codeTop100题(23)54. 螺旋矩阵
1. 题目 54. 螺旋矩阵 2. 分析 首先我们可以看到,在整个遍历过程中,我们主要分为4步: 右移(i+0, j+1) 右移到越界或者已遍历,下移(i + 1, j+0) 下移到越界或者已遍历,左
下一页