刷题
文章平均质量分 74
包含LeetCode、牛客等算法题,并会附带解题思路
阿杆.
后端开发,全网同名【阿杆】,我的公众号【程序员阿杆】。wx:sticki6,添加时请备注来意。
展开
-
LeetCode 79 单词搜索 | 解题思路分享
给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。原创 2023-01-15 21:55:04 · 356 阅读 · 0 评论 -
LeetCode 78 子集 | 解题思路分享
给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。原创 2023-01-11 16:27:36 · 336 阅读 · 0 评论 -
LeetCode 64 最小路径和 | 解题思路分享
给定一个包含非负整数的 `m x n` 网格 `grid` ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。每次只能向下或者向右移动一步。原创 2023-01-09 13:22:27 · 298 阅读 · 0 评论 -
LeetCode 49 字母异位词分组 | 解题思路分享
给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。字母异位词 是由重新排列源单词的字母得到的一个新单词,所有源单词中的字母通常恰好只用一次。原创 2023-01-09 11:01:58 · 308 阅读 · 0 评论 -
LeetCode 剑指 Offer 二叉树的最近公共祖先 | 解题思路分享
给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大()。”例如,给定如下二叉树: root = [3,5,1,6,2,0,8,null,null,7,4]原创 2022-12-12 15:58:41 · 535 阅读 · 1 评论 -
CSDN编程竞赛第八期 | 参赛经历分享
有一说一,这个签名书的奖励还是我提议的🤣🤣🤣,之前本来准备买一本编程之美,突然想到这本书的作者不是还天天跟我们聊天吗,然后我就在群里问了一下,结果邹老师马上就说。。。原创 2022-11-04 21:42:05 · 1023 阅读 · 2 评论 -
LeetCode 101. 对称二叉树
我看完题目后的第一反应就是,这居然是一道简单题!感觉至少也算是中等难度吧,我想了十几分钟才想到解题的方法。给你一个二叉树的根节点。检查它是否轴对称。原创 2022-09-30 22:35:16 · 788 阅读 · 0 评论 -
【CSDN竞赛第六期】难得AK,一看排行,大家居然都是满分?
这应该是我第四次参加了吧,第四期的时候拿过一次奖励,那次是排第三名,拿了一等奖。之前也发过一篇分享的文章,然后拿到奖励之后也发了一篇动态。有一说一,高级背包还是很不错的,上面口袋贼多,还有一个充电口,用来放充电宝的那种😁😁但是那件衣服就稍微有点丑了,穿起来还是挺舒服的,好像是纯棉的,就是印花的效果很一般,看上去有点丑哈哈哈哈哈哈。比赛规则就是在两个小时内解决四道算法题,分数高且时间短者获胜。原创 2022-09-21 21:47:17 · 558 阅读 · 0 评论 -
CSDN竞赛第四期季军 解题思路及参赛经历分享
这已经是我第三次参赛了,前两次都没有获奖,这次进了前三,给大伙分享一下我的参加经历和解题思路🥰🥰。原创 2022-08-22 15:02:12 · 1675 阅读 · 20 评论 -
LeetCode 剑指 Offer 10- I. 斐波那契数列 、剑指 Offer 10- II. 青蛙跳台阶问题
需要注意取模的运算,取模运算规律可以百度到,大概就是: ans%mod = (a%mod+b%mod) % mod。写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N))。那么这题用循环来做就可以了,也不难想到,可以用一个数组存储每一次计算的值,然后当前值再用上两个值去计算即可。故得出此推导式其实和斐波那契数列是一样的,就是 f(n) = f(n-1) + f(n-2);然后前两个的值是根据题意得出来的,f(0)是根据示例中的值得到的。...原创 2022-08-16 10:46:30 · 123 阅读 · 0 评论 -
LeetCode 剑指 Offer 04. 二维数组中的查找 、 剑指 Offer 07. 重建二叉树
在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。输入某二叉树的前序遍历和中序遍历的结果,请构建该二叉树并返回其根节点。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。...原创 2022-08-14 22:19:43 · 124 阅读 · 0 评论 -
LeetCode 剑指 Offer 05. 替换空格 、58 - II. 左旋转字符串
请实现一个函数,把字符串 s 中的每个空格替换成"%20"。字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。...原创 2022-08-12 20:24:46 · 102 阅读 · 0 评论 -
大疆2022秋招笔试 —— 最小时间差、数组的最小偏移量
给你一个由 n 个正整数组成的数组 nums 。你可以对数组的任意元素执行任意次数的两类操作:如果元素是 偶数 ,除以 2例如,如果数组是 [1,2,3,4] ,那么你可以对最后一个元素执行此操作,使其变成 [1,2,3,2]如果元素是 奇数 ,乘上 2例如,如果数组是 [1,2,3,4] ,那么你可以对第一个元素执行此操作,使其变成 [2,2,3,4]数组的 偏移量 是数组中任意两个元素之间的 最大差值 。返回数组在执行某些操作之后可以拥有的 最小偏移量 。......原创 2022-08-08 22:07:31 · 1279 阅读 · 2 评论 -
LeetCode 剑指 Offer 35. 复杂链表的复制
在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random 指针指向链表中的任意节点或者 null。于是我想到了用map映射的方法写出了这道题,后来看到评论区大哥们说另一种思路,于是我用那种思路也实现了一遍,都贴在下面了。然后发现不对,它题目的意思是,所有的节点你都必须重新new一个才行,只要你的链表节点中有对它原来的链表的引用那就不对。需要注意的是,要把原来的链表也进行还原,不能只把自己的链表拼接就不管旧链表了,否则系统会判错。时间复杂度O(n) ,空间复杂度O(1)。...原创 2022-08-07 17:31:51 · 169 阅读 · 0 评论 -
LeetCode 剑指 Offer 24. 反转链表 、剑指 Offer 06. 从尾到头打印链表
定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。样例这题我的思路是用头插法,就是每次插入都是放在链表的头结点处,这样可以一边插入一边往后走,也不用维护其他的变量,非常适合这道题。时间复杂度:O(n),其中 n 是链表的长度。需要遍历链表一次。空间复杂度:O(1)。Java代码:...输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。...原创 2022-08-06 12:05:23 · 119 阅读 · 1 评论 -
LeetCode 剑指 Offer 09. 用两个栈实现队列 、剑指 Offer 30. 包含min函数的栈
用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。...原创 2022-08-06 11:26:46 · 96 阅读 · 0 评论