
算法每日一题
文章平均质量分 67
提升编码能力和思维能力
jiaoer~~
这个作者很懒,什么都没留下…
展开
-
Leetcode-每日一题【剑指 Offer 32 - I. 从上到下打印二叉树】
从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。原创 2023-08-16 17:16:19 · 569 阅读 · 0 评论 -
Leetcode-每日一题【剑指 Offer 32 - II. 从上到下打印二叉树 II】
从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。例如:给定二叉树:3/ \9 20/ \15 7返回其层次遍历结果:[3],[9,20],[15,7]原创 2023-08-16 22:54:27 · 388 阅读 · 0 评论 -
Leetcode-每日一题【剑指 Offer 32 - III. 从上到下打印二叉树 III】
请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。例如:给定二叉树:3/ \9 20/ \15 7返回其层次遍历结果:[3],[20,9],[15,7]原创 2023-08-16 23:48:20 · 319 阅读 · 0 评论 -
Leetcode-每日一题【剑指 Offer 31. 栈的压入、弹出序列】
输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如,序列 {1,2,3,4,5} 是某栈的压栈序列,序列 {4,5,3,2,1} 是该压栈序列对应的一个弹出序列,但 {4,3,5,1,2} 就不可能是该压栈序列的弹出序列。true我们可以按以下顺序执行:false1 不能在 2 之前弹出。popped。原创 2023-08-15 11:22:57 · 1103 阅读 · 2 评论 -
Leetcode-每日一题【剑指 Offer 29. 顺时针打印矩阵】
输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。原创 2023-08-13 15:58:53 · 397 阅读 · 0 评论 -
Leetcode-每日一题【剑指 Offer 30. 包含min函数的栈】
定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。--> 返回 -3.--> 返回 0.--> 返回 -2.原创 2023-08-14 15:51:47 · 382 阅读 · 0 评论 -
Leetcode-每日一题【剑指 Offer 28. 对称的二叉树】
请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。truefalse。原创 2023-08-12 17:50:19 · 498 阅读 · 0 评论 -
Leetcode-每日一题【剑指 Offer 26. 树的子结构】
输入两棵二叉树A和B,判断B是不是A的子结构。(约定空树不是任意一个树的子结构)B是A的子结构, 即 A中有出现和B相同的结构和节点值。例如:41返回 true,因为 B 与 A 的一个子树拥有相同的结构和节点值。falsetrue。原创 2023-08-12 17:07:33 · 419 阅读 · 0 评论 -
Leetcode-每日一题【剑指 Offer 25. 合并两个排序的链表】
输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。原创 2023-08-12 16:27:22 · 368 阅读 · 0 评论 -
Leetcode-每日一题【剑指 Offer 27. 二叉树的镜像】
请完成一个函数,输入一个二叉树,该函数输出它的镜像。原创 2023-08-12 17:23:16 · 462 阅读 · 0 评论 -
Leetcode-每日一题【剑指 Offer 20. 表示数值的字符串】
请实现一个函数用来判断字符串是否表示(包括整数和小数)。'e''E''+''-''.''.''.''+''-'部分部分s = "0"trues = "e"falses = "."falsetrue0-9'+''-'' ''.'原创 2023-08-12 15:29:49 · 350 阅读 · 0 评论 -
Leetcode-每日一题【剑指 Offer 24. 反转链表】
定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。原创 2023-08-12 15:54:53 · 489 阅读 · 0 评论 -
Leetcode-每日一题【剑指 Offer 19. 正则表达式匹配】
请实现一个函数用来匹配包含'. '和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(含0次)。在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但与"aa.a"和"ab*a"均不匹配。s = "aa"p = "a"false"a" 无法匹配 "aa" 整个字符串。原创 2023-08-10 11:58:32 · 319 阅读 · 0 评论 -
Leetcode-每日一题【剑指 Offer 16. 数值的整数次方】
实现,即计算 x 的 n 次幂函数(即,xn)。不得使用库函数,同时不需要考虑大数问题。原创 2023-08-09 18:15:22 · 489 阅读 · 0 评论 -
Leetcode-每日一题【剑指 Offer 18. 删除链表的节点】
给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点。此题对比原题有改动[4,1,9]给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.[4,5,9]给定你链表中值为 1 的第三个节点,那么在调用了你的函数之后,该链表应变为 4 -> 5 -> 9.freedelete。原创 2023-08-09 17:32:57 · 367 阅读 · 0 评论 -
Leetcode-每日一题【剑指 Offer 14- II. 剪绳子 II】
2、3、3的三段,此时得到的最大乘积是18。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。211036。原创 2023-08-09 16:56:58 · 375 阅读 · 0 评论 -
Leetcode-每日一题【剑指 Offer 12. 矩阵中的路径】
单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。例如,在下面的 3×4 的矩阵中包含单词 "ABCCED"(单词中的字母已标出)。原创 2023-08-09 11:16:31 · 522 阅读 · 0 评论 -
Leetcode-每日一题【剑指 Offer 11. 旋转数组的最小数字】
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。给你一个可能存在 重复 元素值的数组 numbers ,它原来是一个升序排列的数组,并按上述情形进行了一次旋转。请返回旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一次旋转,该数组的最小值为 1。注意,数组 [a[0], a[1], a[2], ..., a[n-1]] 旋转一次 的结果为数组 [a[n-1], a[0], a[1], a[2], ..., a[n-2]]。10。原创 2023-08-08 23:18:52 · 500 阅读 · 2 评论 -
Leetcode-每日一题【剑指 Offer 14- I. 剪绳子】
给你一根长度为n的绳子,请把绳子剪成整数长度的m段(m、n都是整数,n>1并且m>1),每段绳子的长度记为。请问可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。211036。原创 2023-08-09 16:08:11 · 368 阅读 · 0 评论 -
Leetcode-每日一题【剑指 Offer 07. 重建二叉树】
输入某二叉树的前序遍历和中序遍历的结果,请构建该二叉树并返回其根节点。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。[-1]原创 2023-08-07 16:58:01 · 513 阅读 · 0 评论 -
Leetcode-每日一题【剑指 Offer 17. 打印从1到最大的n位数】
输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。n = 1用返回一个整数列表来代替打印n 为正整数。原创 2023-08-05 17:15:40 · 605 阅读 · 0 评论 -
Leetcode-每日一题【剑指 Offer 13. 机器人的运动范围】
地上有一个m行n列的方格,从坐标[0,0]到坐标[m-1,n-1]。一个机器人从坐标[0, 0]的格子开始移动,它每次可以向左、右、上、下移动一格(不能移动到方格外),也不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格 [35, 37] ,因为3+5+3+7=18。但它不能进入方格 [35, 38],因为3+5+3+8=19。请问该机器人能够到达多少个格子?31。原创 2023-08-09 15:09:02 · 871 阅读 · 0 评论 -
Leetcode-每日一题【剑指 Offer 15. 二进制中1的个数】
编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 '1' 的个数(也被称为).)。-3n = 11 (控制台输入 00000000000000000000000000001011)3输入的二进制串中,共有三位为 '1'。n = 128 (控制台输入 00000000000000000000000010000000)1输入的二进制串中,共有一位为 '1'。原创 2023-08-09 17:13:34 · 325 阅读 · 0 评论 -
Leetcode-每日一题【剑指 Offer 09. 用两个栈实现队列】
用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )最多会对 appendTail、deleteHead 进行 10000 次调用。原创 2023-08-05 15:17:36 · 242 阅读 · 0 评论 -
Leetcode-每日一题【剑指 Offer 10- II. 青蛙跳台阶问题】
一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。原创 2023-08-05 16:57:11 · 397 阅读 · 0 评论 -
Leetcode-每日一题【剑指 Offer 10- I. 斐波那契数列】
写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N))。斐波那契数列的定义如下:F(N) = F(N - 1) + F(N - 2), 其中 N > 1.斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。原创 2023-08-05 16:20:26 · 271 阅读 · 0 评论 -
Leetcode-每日一题【剑指 Offer 06. 从尾到头打印链表】
输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。[2,3,1]0原创 2023-08-04 17:48:10 · 384 阅读 · 1 评论 -
Leetcode-每日一题【剑指 Offer 05. 替换空格】
请实现一个函数,把字符串 s 中的每个空格替换成"%20"。0原创 2023-08-04 17:24:40 · 266 阅读 · 0 评论 -
Leetcode-每日一题【剑指 Offer 04. 二维数组中的查找】
在一个 n * m 的二维数组中,每一行都按照从左到右 非递减 的顺序排序,每一列都按照从上到下 非递减 的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。现有矩阵 matrix 如下:给定 target = 5,返回 true。给定 target = 20,返回 false。原创 2023-08-04 17:00:45 · 250 阅读 · 0 评论 -
Leetcode-每日一题【剑指 Offer 21. 调整数组顺序使奇数位于偶数前面】
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数在数组的前半部分,所有偶数在数组的后半部分。[1,3,2,4][3,1,2,4] 也是正确的答案之一。原创 2023-08-04 15:56:33 · 245 阅读 · 0 评论 -
Leetcode-每日一题【剑指 Offer 53 - I. 在排序数组中查找数字 I】
统计一个数字在排序数组中出现的次数。20。原创 2023-08-01 15:07:12 · 217 阅读 · 0 评论 -
Leetcode-每日一题【剑指 Offer 56 - I. 数组中数字出现的次数】
一个整型数组nums里除两个数字之外,其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。[1,6] 或 [6,1][2,10] 或 [10,2]原创 2023-07-30 16:50:40 · 436 阅读 · 6 评论 -
Leetcode-每日一题【剑指 Offer II 006. 排序数组中两个数字之和】
给定一个已按照 升序排列 的整数数组 numbers ,请你从数组中找出两个数满足相加之和等于目标数 target。函数应该以长度为 2 的整数数组的形式返回这两个数的下标值。numbers 的下标 从 0 开始计数 ,所以答案数组应当满足 0原创 2023-07-31 15:31:56 · 200 阅读 · 0 评论 -
Leetcode-每日一题【剑指 Offer II 009. 乘积小于 K 的子数组】
给定一个正整数数组 nums和整数 k ,请找出该数组内乘积小于 k 的连续的子数组的个数。88 个乘积小于 100 的子数组分别为: [10], [5], [2], [6], [10,5], [5,2], [2,6], [5,2,6]。需要注意的是 [10,5,2] 并不是乘积小于100的子数组。0。原创 2023-07-29 12:47:52 · 332 阅读 · 0 评论 -
Leetcode-每日一题【剑指 Offer II 075. 数组相对排序】
给定两个数组,arr1 和 arr2,arr2 中的元素各不相同arr2 中的每个元素都出现在 arr1 中对 arr1 中的元素进行排序,使 arr1 中项的相对顺序和 arr2 中的相对顺序相同。未在 arr2 中出现过的元素需要按照升序放在 arr1 的末尾。原创 2023-07-28 16:03:12 · 327 阅读 · 0 评论 -
Leetcode-每日一题【剑指 Offer 66. 构建乘积数组】
给定一个数组 A[0,1,…,n-1],请构建一个数组 B[0,1,…,n-1],其中 B[i] 的值是数组 A 中除了下标 i 以外的元素的积, 即 B[i]=A[0]×A[1]×…×A[i-1]×A[i+1]×…×A[n-1]。不能使用除法。原创 2023-07-27 10:46:00 · 368 阅读 · 0 评论 -
Leetcode-每日一题【剑指 Offer 51. 数组中的逆序对】
在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。原创 2023-07-26 12:53:34 · 554 阅读 · 0 评论 -
Leetcode-每日一题【剑指 Offer II 010. 和为 k 的子数组】
给定一个整数数组和一个整数 k ,请找到该数组中和为 k 的连续子数组的个数。2此题 [1,1] 与 [1,1] 为两种不同的情况2。原创 2023-07-25 11:39:07 · 267 阅读 · 0 评论 -
Leetcode-每日一题【23.合并 K 个升序链表】
给你一个链表数组,每个链表都已经按升序排列。请你将所有链表合并到一个升序链表中,返回合并后的链表。链表数组如下:1->4->5,1->3->4,2->6将它们合并到一个有序链表中得到。原创 2023-07-20 16:43:51 · 212 阅读 · 0 评论 -
Leetcode-每日一题【剑指 Offer 03. 数组中重复的数字】
找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。原创 2023-07-24 14:51:20 · 137 阅读 · 0 评论