首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
LeetCode日常
木瓜煲鸡脚
创建于2021-07-22
订阅专栏
随性每周不定时更新的LeetCode刷题及个人总结
等 5 人订阅
共45篇文章
创建于2021-07-22
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
LeetCode日常之链表:234 回文链表 | 七日打卡
请判断一个链表是否为回文链表。 比较容易想到的就是使用另一个容器存节点,再比较值,这里存到数组进行首尾比较。那就和字符串(数组)回文一样了 我们仍然是要使空间复杂度为O(1) 的,所以还是要回到纯链表的操作不用别的数据结构。结合之前的练习可以采用原地链表反转的算法之后再和原链表…
LeetCode日常之链表:21 合并两个有序链表 | 七日打卡
将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 最差情况两个链表交错,直到一个为空。不会超过n + m , 时间复杂度:O(n + m) 没有使用额外空间,空间复杂度:O(1) 。 同样的改递归自顶向上,到l1/l2为null时…
LeetCode日常之链表:206 反转链表
反转一个单链表。 你可以迭代或递归地反转链表。你能否用两种方法解决这道题? 反转一个链表和数组是不一样的,因为不能任意取值,只能说按照next的顺序依次往后放。那么把一个节点往后放的过程就是一次迭代,我们要找到迭代周期的操作。 我们要迭代的有两个值,第一个不用说是当前节点cur…
LeetCode日常之链表:19 删除链表的倒数第N个节点
给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。 给定的 n 保证是有效的。 很自然的是我只能通过头节点head多次的next,找到要被删除的节点,但我们获取的定位是倒数第几个。直观的就是我们通过总长度减去倒数就是我们的next次数 现在我们是完成了这样一个思…
LeetCode日常之链表:237 删除链表中的节点
请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点。传入函数的唯一参数为 要被删除的节点 。 链表至少包含两个节点。 链表中所有节点的值都是唯一的。 给定的节点为非末尾节点并且一定是链表中的一个有效节点。 不要从你的函数中返回任何结果。 作为合集中链表的第一题,确实是较…
LeetCode日常之字符串:14 最长公共前缀
编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。 所有输入只包含小写字母 a-z 。 去找到多个串的公共前缀不知道,但我们至少知道找两个串的公共前缀。于是两两一组用上次公共串找下公共直到n-1次迭代完成最终公共前缀,那么像第一个示例三个串…
LeetCode日常之字符串:38 外观数列
给定一个正整数 n ,输出外观数列的第 n 项。 外观数列 是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。 countAndSay(n) 是对 countAndSay(n-1) 的描述,然后转换成另一个数字字符串。 要描述一个数字字符串,首先要将字符串分割…
LeetCode日常之字符串:28 实现strStr()
给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。 当 needle 是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题。对于本题而言,当…
LeetCode日常之字符串:8 字符串转整数(atoi)| 创作者训练营
请你来实现一个 atoi 函数,使其能将字符串转换成整数。 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。接下来的转化规则如下: 如果第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字字符组合起来,形成一个有符号整数。 假如第一…
LeetCode日常之字符串:125 验证回文串 | 创作者训练营
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 说明: 本题中,我们将空字符串定义为有效的回文串。 首先判断两个字符串是否是回文串,就是原串与倒序是否相等,那不就是前面写的反转字符串么。只不过就是首尾交换,换成首尾是否相等。但在此之前我们先要从…
LeetCode日常之字符串:242 有效的字母异位词 | 创作者训练营
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。(26个小写字母) 你可以假设字符串只包含小写字母。 这题呢也是一个查找的一个操作,所以直接想到的就是hash表。两个字符串字母都一样就位置不一样,那就用Hash记录。最后key没有差别并且值相等就…
LeetCode日常之字符串:387 字符串中的第一个唯一字符 | 创作者训练营
给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。 提示: 你可以假定该字符串只包含小写字母。 然后LeetCode的测试用例字符串也是真的长(只截取了部分下面还可以翻页),所以在n^2的情况下超时。 上面的解法是有可优化的点的。我们去查找第…
LeetCode日常之字符串:7 整数反转 | 创作者训练营
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。 假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−2^31, 2^31 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。 在上述代码中已经完成主体代码以及反转后的数值越出边…
LeetCode日常之字符串:344 反转字符串
编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。 不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。 你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。 开篇一题也没太多可…
LeetCode日常之数组:48 旋转图像 | 创作者训练营
给定一个 n × n 的二维矩阵表示一个图像。 将图像顺时针旋转 90 度。 你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。 这一题与前面写到的旋转数组一题相似,之前是一维的,现在相当于是二维版。同样是两种思路一种是直接设置值到最终…
LeetCode日常之数组:36 有效数独 | 创作者训练营
判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。 数字 1-9 在每一行只能出现一次。 数字 1-9 在每一列只能出现一次。 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。 一个有效的数独(部分已被填充)不一定是可解的。 …
LeetCode日常之数组:1 两数之和
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。 但实际上按照上面我们去到数组当中找两个数相加为目标值的方式也就是在确定nums[…
LeetCode日常之数组:283 移动零
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 必须在原数组上操作,不能拷贝额外的数组。 尽量减少操作次数。 对于这样一道题一开始看到要原地修改首先就想到了双指针遍历一次把不是零的往前设置。后面的再全部设置0,这样得到的算法也是满…
LeetCode日常之数组:66 加一
给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。 一开始想到的就是模拟加法,在仔细读题目后又得到了另一种解决方式,就是还原成表达的数字加一之后再还原…
LeetCode日常之数组:350 两个数组的交集II
给定两个数组,编写一个函数来计算它们的交集。 输出结果中每个元素出现的次数,应与元素在两个数组中出现次数的最小值一致。 我们可以不考虑输出结果的顺序。 就相当于是数学集合求交集,很容易想到的就是双指针扫描比较判断是否存入结果。对于这样的方式就选择先排序再比较。 空间复杂度O(n…
下一页