- 博客(80)
- 收藏
- 关注
原创 剑指offer-删除链表中的节点
有一个单链表的head,我们想删除它其中的一个节点node。给你一个需要删除的节点node。你将第一个节点head。链表的所有值都是,并且保证给定的节点node不是链表中的最后一个节点。删除给定的节点。注意,删除节点并不是指从内存中删除它。nodenode。
2023-12-03 10:26:45 104
原创 剑指Offer-机器人的运动范围
家居整理师将待整理衣橱划分为m x n的二维矩阵grid,其中grid[i][j]代表一个需要整理的格子。整理师自grid[0][0]开始地整理每个格子。整理规则为:在整理过程中,可以选择或,但不能移动到衣柜之外。同时,不需要整理的格子,其中digit(x)表示数字x的各数位之和。请返回整理师。
2023-11-14 15:22:56 54
原创 剑指Offer-旋转数组中的最小数
仓库管理员以数组stock形式记录商品库存表。stock[i]表示商品id,可能存在重复。原库存表按商品id升序排列。现因突发情况需要进行商品紧急调拨,管理员将这批商品id提前依次整理至库存表最后。请你找到并返回库存表中编号的以便及时记录本次调拨。
2023-11-07 15:21:21 83
原创 剑指Offer-推理二叉树
preorder里头的第一个元素必定是根节点,这里为3,在inorder里头,3的左右子节点则是。在寻找左右子节点时,我们需要界定其范围,因此参数加入left和right表示左右子树的范围。而每一个根节点都可以像这样子构建,因此这道题是体现了分治的思想。原理是:中序里面左右子树的长度是等于前序数组里头左右子树的长度的。,每次–,用来轮询根节点的值,实际上并不需要一个一个都去访问。在构建左右子树是,我们可以直接锁定住根节点的位置。对于右子树来说,根节点就是当前的。,而在中序数组中,得到根节点的。
2023-11-06 14:23:53 70
原创 day23-113. 路径总和ii
给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。示例: 给定如下二叉树,以及目标和 sum = 22,说明: 叶子节点是指没有子节点的节点。,像这样传递参数,返回后数值不变。
2023-08-10 09:09:35 76
原创 day21-110.平衡二叉树
给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。示例 1:给定二叉树 [3,9,20,null,null,15,7]返回 true。示例 2:给定二叉树 [1,2,2,3,3,null,null,4,4]返回 false。
2023-08-06 23:47:31 142
原创 day18-二叉树统一迭代写法
如果要做到同时处理,我们可以在要处理的结点后放一个空指针作为标记。前面说了,前序/后序和中序不能统一的原因是因为,
2023-07-31 17:16:39 219
原创 day15-239. 滑动窗口最大值
给定一个数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值。进阶:你能在线性时间复杂度内解决此题吗?
2023-07-27 10:40:20 206
原创 day14-225. 用队列实现栈
的特性,pop时队列的队尾是被弹出的对象,因此我们要想办法使得队列的对头为队尾,这种情况也就是队列中只有一个元素。所以我们用备份队列赞成队列中的后n-1个元素,再弹出第n个元素,然后再倒回去。的特点,即使n个队列也是先进先出,队列中的数据顺序不会改变。实际上我们只用一个队列就可以实现,另一个队列做备份。和前面一道题不一样,使用队列实现栈时并不需要两个队列,因为队列。
2023-07-26 09:33:52 51
原创 day13-232.用栈实现队列
使用栈实现队列的下列操作:push(x) – 将一个元素放入队列的尾部。pop() – 从队列首部移除元素。peek() – 返回队列首部的元素。empty() – 返回队列是否为空。
2023-07-26 09:17:28 69
原创 day12-459.重复的子字符串
给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母,并且长度不超过10000。
2023-07-23 09:56:43 64
原创 day11-KMP
实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1: 输入: haystack = “hello”, needle = “ll” 输出: 2示例 2: 输入: haystack = “aaaaa”, needle = “bba” 输出: -1说明: 当 needle 是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题。
2023-07-22 19:12:20 44
原创 day10-151.翻转字符串里的单词
给定一个字符串,逐个翻转字符串中的每个单词。示例 1:输入: “the sky is blue”输出: “blue is sky the”示例 2:输入: " hello world!输出: “world!hello”解释: 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。示例 3:输入: “a good example”输出: “example good a”解释: 如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。
2023-07-21 20:44:11 48
原创 day9-题目:剑指Offer58-II.左旋转字符串
字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。
2023-07-21 19:55:26 38
原创 day8-剑指Offer 05.替换空格
请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例 1: 输入:s = “We are happy.”输出:“We%20are%20happy.”
2023-07-20 20:56:55 41
原创 KotlinLearing11-更多作用域构建器
前面学习了GlobalScope、runBlocking、launch、coroutineScope这几种作用域构建器。它们都可以用于创建一个新的协程作用域,但是前面已经说了,runBlocking会阻塞线程,而GlobalScope.launch由于每次创建的都是顶层协程,不太建议使用。主要是因为管理起来成本比较高。下面是实际项目中比较常用的写法。
2023-07-10 21:15:54 204
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人