![](https://img-blog.csdnimg.cn/20190918140213434.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
leetcode 和 剑指offer 刷题
文章平均质量分 73
leetcode 和 剑指offer 刷题
小周学编程~~~
越努力,越幸运
展开
-
【每日一题】day2(好多基础题)
文章目录1.奇数位上都是奇数,偶数位上都是偶数2.猴子分桃3.剪花布条4.变态跳台阶5.快到碗里来6.最难的问题7.分解因数8.因子的个数9.树根10.三角形11.有假币12.客似云来1.奇数位上都是奇数,偶数位上都是偶数给定一个长度不小于2的数组arr。 写一个函数调整arr,使arr中要么所有的偶数位上都是偶数,要么所有的奇数位上都是奇数上。要求:如果数组长度为N,时间复杂度请达到O(N),额外空间复杂度请达到O(1),下标0,2,4,6…算作偶数位,下标1,3,5,7…算作奇数位,例如[1,2,原创 2022-04-06 21:55:24 · 1212 阅读 · 0 评论 -
【每日一题】day3 @剑指offer 字符串中的变位词
文章目录题目描述问题分析方法一: 双指针法方法二: 利用滑动窗口题目描述给定两个字符串 s1 和 s2,写一个函数来判断 s2 是否包含 s1 的某个变位词。换句话说,第一个字符串的排列之一是第二个字符串的 子串 。示例 1:输入: s1 = “ab” s2 = “eidbaooo”输出: True解释: s2 包含 s1 的排列之一 (“ba”).示例 2:输入: s1= “ab” s2 = “eidboaoo”输出: False问题分析首先是对变位词的理解,那么什么是变位原创 2022-04-08 01:14:46 · 546 阅读 · 8 评论 -
【每日一题】day1(星际密码->斐波那契)
OJ链接星际战争开展了100年之后,NowCoder终于破译了外星人的密码!他们的密码是一串整数,通过一张表里的信息映射成最终4位密码。表的规则是:n对应的值是矩阵X的n次方的左上角,如果这个数不足4位则用0填充,如果大于4位的则只输出最后4位。|1 1|^n => |Xn …||1 0| |… …|例如n=2时,|1 1|^2 => |1 1| * |1 1| => |2 1||1 0| |1 0| |1 0| |1 1|即2对应的数是“0002”。输入原创 2022-04-04 19:43:11 · 225 阅读 · 9 评论 -
每日一题之旋转字符串(超详细,超硬核)
文章目录题目内容介绍(左旋转运算符)思路一:临时数组法1代码实现思路二:临时数组法2代码实现:思路三:临时变量循环法代码实现:思路四:块变换(求逆)代码实现:题目内容介绍(左旋转运算符)实现一个函数,可以左旋字符串中的k个字符。ABCD左旋一个字符得到BCDAABCD左旋两个字符得到CDAB思路一:临时数组法1数组arr数组中的内容要向前移动k位,前k位移到arr数组的末端。首先创建一个和原数组arr等长的临时数组temp。把arr数组中前k个元素赋值到temp数组的后k位。原创 2021-06-01 13:51:45 · 193 阅读 · 1 评论 -
【每日一题】跳石板--动态规划
OJ链接算法思想:本题求解的是小易要最少跳几次石板,就可以跳到最后一个石板。那么就是求解一个跳石板的最优解,那么我们就会联想到使用动态规划来进行求解。简单的来说动态规划就是你这一步要求解的结果,要利用上你上一步求解的结果.因为在本题中要输入现在小易所在的石板位置,和最终小易要到达的石板位置。我们把起先的石板位置定义为n,最终的位置定义为m,新建一个数组step,初始化step中的内容为整形的最大值。那么小易现在的位置就是step[n],因为小易要到第n个石板现在所需的步数为0,所以step[n] =原创 2022-04-18 22:48:33 · 330 阅读 · 1 评论 -
【数据结构高阶】终于有人把AVL树给说清了
二叉搜索树又被称为二叉排序树,它是一棵空树,或者是具有一下性质的二叉树若它的左子树不为空,则左子树上所有的节点的值都小于根节点的值。若它的右子树不为空,则右子树上所有的节点的值都大于根节点的值。它的左右子树也分别为二叉搜索树。图例: 从上述概念以及图中可以看出,二叉搜索树具有以下的特性:既然将其称为二叉搜索树,因此这颗树主要是用来进行查找元素,而且查询的原理特别简单。具体如下:题目在一棵二叉搜索树中,查找某个值,如果在树中存在这个元素,那么就返回true,否则返回false图例:插入和删除操作,都是建立在原创 2022-07-09 12:16:32 · 754 阅读 · 4 评论 -
[leetcode篇]20.有效的括号
好长时间都不更新leetcode题解了,博主今天忙里偷闲来解一下这个有关于栈知识的题目。20.有效的括号:OJ链接先看题目描述:给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。示例 1: 输入:s = “()” 输出:true示例 2:输入:s = “()[]{}” 输出:true示例 3: 输入:s = “(]” 输出:false示例 4:输入:s原创 2021-10-19 01:39:02 · 388 阅读 · 5 评论 -
[leetcode篇]LeetCode 61.旋转链表
文章目录????问题描述:????问题解析:???? 思路:???? 看图说话:????相关代码:????问题描述:LeetCode 61.旋转链表????问题解析:此题为旋转链表,其实这个题就是要把相关的链表节点,向后移动几位,如果后半段的链表节点在链表中移动位数不够的话,就移动节点到前半个链表。那么我们都知道单链表只能从头节点一直遍历到单向遍历到链表的尾节点,那么对于这个题来说,如果要旋转尾节点,那么尾节点自然要旋转到链表的其他节点,根据这样的思路我们不难想到如果连接链表的头节点和为节点,这样原创 2021-09-15 22:49:12 · 252 阅读 · 4 评论 -
[leetcode篇]重排链表
文章目录❤️问题描述:❤️算法思想:????代码实现:❤️问题描述:❤️算法思想:????题目解读:我们看看此题,是不是 起先一点思路都没有呀!!!其实此题并不难,关键在于我们一定要读懂题目,题目是这样把链表后半段的val值,移到链表的前半段,并且是这样的 前半段的一个节点 ,后半段一个节点 ,前半段一个节点·····????具体解析:首先链表分为两半,利用快慢指针思想,快指针一次遍历链表中的两个节点,慢指针一次遍历链表中一个节点,当快指针把链表遍历完时,慢指针恰好指向链表的中间节点。然原创 2021-09-08 22:52:31 · 470 阅读 · 9 评论 -
[Leetcode篇]链表中的两数相加
文章目录题目描述:算法思路:代码:题目描述:剑指offerII 025算法思路:相信许多人拿到这个题的时候,会想这不就so easy嘛,直接让两数每个数字位上的元素相加不就完事了吗?不不不,我们要注意的是题目中的描述,他说数字的最高位在单链表的头节点,而最低位在单链表的尾节点,学习过链表基础的同学,肯定会想单链表只能从头节点遍历到尾节点,我们在数字相加的时候,要从低位加起,所以要从链表的尾节点遍历到链表的头节点,所以说求解此题第一步,翻转两个要进行相加的链表。到了第二步,我们在数字相加的时候要注原创 2021-09-05 16:54:45 · 174 阅读 · 6 评论 -
[LeetCode篇]LeetCode 19删除链表倒数第N个节点
文章目录题目描述:????思路一:????代码????思路二:????代码:题目描述:????思路一:首先我们要删除倒数第k个节点,就要找到倒数第k+1个节点,让这个节点的next指向倒数第k-1个节点,这样就完美的跳过了倒数第k个节点,有删除的效果。这个方法要遍历链表两次。第一次遍历链表,得到链表的总长度length,第二次遍历链表,找到链表的第length - k 个节点,这个节点就是链表倒数第k+1个节点。然后让它的next指向倒数第k-1个节点。看图说话:????代码 class原创 2021-09-04 09:50:44 · 179 阅读 · 3 评论