剑指Offer好题精选
这个专栏是为大家挑选了剑指offer的经典题目,目标是每天一道。
见闻色霸气~
这个作者很懒,什么都没留下…
展开
-
单调队列的应用:剑指 Offer 59 - II. 队列的最大值 双端队列(图文并茂)一步一步详细指导
目录题目信息样例示例 1:示例 2:限制条件思路:Step 1:Step 2:Step 3:Step 4:总结:代码实现题目信息请定义一个队列并实现函数 max_value 得到队列里的最大值,要求函数max_value、push_back 和 pop_front 的均摊时间复杂度都是O(1)。若队列为空,pop_front 和 max_value 需要返回 -1样例示例 1:输入: ["MaxQueue","push_back","push_back","max_value","po原创 2022-01-21 13:47:57 · 202 阅读 · 7 评论 -
❤️剑指Offer_10.斐波那契数列 动态规划 LeetCode双百缪莎❤️
⭐欢迎来到剑指offer好题精选专栏,一起学习,一起进步⭐ 题目信息:写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N))。斐波那契数列的定义如下:F(0) = 0, F(1) = 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。示例1:输入:n = 2输出:1示例2:输入:n = 5输出:5解题思路:动态规划,设d.原创 2021-09-22 22:21:44 · 464 阅读 · 1 评论 -
剑指Offer_31.栈的压入、弹出序列
⭐欢迎来到剑指offer好题精选专栏,一起学习,一起进步⭐ 题目信息:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如,序列 {1,2,3,4,5} 是某栈的压栈序列,序列 {4,5,3,2,1} 是该压栈序列对应的一个弹出序列,但 {4,3,5,1,2} 就不可能是该压栈序列的弹出序列。提示:0 <= pushed.length == popped.length <= 10000 <= pushed[.原创 2021-09-18 08:38:53 · 428 阅读 · 10 评论 -
剑指Offer-07 重建二叉树的两种方法
⭐欢迎来到剑指offer好题精选专栏,一起学习,一起进步⭐ 题目信息:给定某二叉树的前序遍历和中序遍历,请重建出该二叉树并返回它的头结点。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建出如下图所示。提示:1.0 <= pre.length <= 20002.vin.length == pre.length3.-10000 <= pre[i], vin[i] <= 100004.pre 和 vin.原创 2021-09-16 22:07:54 · 273 阅读 · 24 评论 -
剑指Offer_06 从头到尾打印链表两种方法任你挑选
⭐欢迎来到剑指offer好题精选专栏,一起学习,一起进步⭐ 题目信息:输入一个链表的头节点,按链表从尾到头的顺序返回每个节点的值(用数组返回)。如输入{1,2,3}的链表如下图:返回一个数组为[3,2,1]0 <= 链表长度 <= 10000示例1:输入:{1,2,3}返回值:[3,2,1]示例2:输入:{67,0,24,58}返回值:[58,24,0,67]解题思路:1、申请一个栈Stack,一个引用节点cur,遍历链表,如果cur不为空,就将cu.原创 2021-09-15 20:11:43 · 449 阅读 · 27 评论 -
⭐有手就行的剑指Offer_05 替换空格,谁都听得懂⭐
⭐欢迎来到剑指offer好题精选专栏,一起学习,一起进步⭐ 题目信息:描述:请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。给定的字符串长度不超过100。保证字符串中的字符为大写英文字母、小写英文字母和空格中的一种。示例1:输入:“We Are Happy”返回值:"We%20Are%20Happy"解题思路:将提供的字符串S,转换成字符数组。创建一个StringBu.原创 2021-09-14 14:46:21 · 251 阅读 · 31 评论 -
剑指offer 04.二维数组中的查找 我妹妹都看的懂的方法
⭐欢迎来到剑指offer好题精选专栏,一起学习,一起进步⭐题目信息:在一个二维数组array中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。要求:时间复杂度O(n),空间复杂度O(1)难度:中等示例二维数组如下: 需要找的数字: 9int [][]array = {{1,2,8,9},{2,4,9,12},{4,7,10,13},{6,8..原创 2021-09-13 17:17:11 · 265 阅读 · 20 评论 -
剑指 Offer II 010. 和为 k 的子数组 前缀和+哈希表优化讲解
剑指 Offer II 010一、题目信息二、解题方法三、代码实现四、其他LeetCode和剑指offer题解一、题目信息二、解题方法定义前缀和pre计算每一次nums数组下标的和,如果没有出现过,就把pre和它的val值放到map中,如果已经出现过了,就把value值+1,在遍历过程中如果map已经包含pre-k的结果了,那么就将结果count+1,遍历结束后,返回count就是本题结果了。三、代码实现class Solution{ public int subarraySum(i.原创 2021-09-06 10:55:55 · 295 阅读 · 16 评论 -
剑指 Offer II 021. 删除链表的倒数第 n 个结点
删除链表的倒数第 n 个结点一、题目信息一、题目信息解题思路: 双指针,一个left,一个right。都把他们初始化到链表的头结点,先让right走n+1步,如果走完之后right为空了,直接返回head.next。接下来让left从head开始走,right继续走,直到right为空,这时left和right中间的就是需要删除的节点,让left.next=left.next.next即可。图解1、假设n=2,需要删除链表的倒数第二个节点,就是4这个节点。2、先让right向前走n+1步原创 2021-09-03 19:55:23 · 484 阅读 · 5 评论 -
找到不重复的数字进阶版 空间复杂度O(1),时间O(n)平方,不能修改数组内容。不能对数组进行排序
一、题目信息:示例:int[] array = {3,2,6,3,1,9,2,6,1}; 出现1次的数字就是 9。空间复杂度O(1),时间O(n)平方,不能修改数组内容。不能对数组进行排序。二、题解不能排序修改原数组,意味着不能用异或的方式,空间复杂度o1,就不能用哈希表,但是时间是0n的平方,那就两个for循环解决吧三、代码实现class solution{ public static int singleNumer(int []array){ int result=原创 2021-09-02 12:30:04 · 460 阅读 · 0 评论 -
剑指 Offer 67. 把字符串转换成整数
题目信息解题思路这是一道中等题,需要判断和考虑的东西很多。我们一一列举出来。1、需要先去除首位的空字符,这个很容易,用trim()方法就好。2、如果遇到的第一个非空字符为‘-’或者‘+’时,把后面的数字连接起来。3、如果遇到的第一个非空字符不是数字或正、负号。就说明是非法的直接返回04、越界问题,题目给的环境是int类型的数字其数值范围为 [−231, 231 − 1],如果越界了就需要返回最大的int值或者最小的int值。代码和详细注释如下class Solution{ p原创 2021-09-01 18:54:50 · 460 阅读 · 13 评论 -
剑指 Offer 58 - II. 左旋转字符串的三种解法一起看看吧!!
一、题目信息二、解题思路2.1、字符串切片形如 “abcdefg”的字符串,用字符串切片函数切成“cdefg”和“ab”两部分,最后在返回的时候拼接在一起就好啦。上代码!class Solution { public String reverseLeftWords(String s, int n) { return s.substring(n, s.length()) + s.substring(0, n); }}2.2、字符串拼接append方法新创原创 2021-08-29 16:35:55 · 447 阅读 · 12 评论 -
剑指 Offer 39. 数组中出现次数超过一半的数字 简单易懂14行搞定 。人人皆可会
这里写目录标题一、 哈希表统计次数14行通过,简单易懂二、题目信息三、解题思路四、代码五、提交结束一、 哈希表统计次数14行通过,简单易懂二、题目信息三、解题思路利用哈希表K,V的特性遍历每一个数字,K是数字的值,V是这个数字出现的次数。如果某个数字出现的个数已经超过数组的一半,直接返回。四、代码class Solution { public int majorityElement(int[] nums) { //创建一个哈希表统计出现的次数 Map<原创 2021-08-27 17:29:20 · 734 阅读 · 8 评论 -
什么?动态规划10行求出连续子数组的最大和 剑指offer-42讲解
这里写自定义目录标题一、题目信息一、题目信息题目要我们原创 2021-08-28 15:32:00 · 739 阅读 · 8 评论