随笔分类 -  剑指offer题解

剑指offer题解
摘要:树中两个节点的最低公共祖先 题目描述 二叉查找树 * 二叉查找树中,两个节点 p, q 的公共祖先 root 满足 root.val >= p.val && root.val ⇐ q.val。 题目链接: 树中两个节点的最低公共祖先 代码 /** * 标题:树中两个节点的最低公共祖先 */ publ 阅读全文
posted @ 2022-03-18 17:28 醉舞经阁 阅读(33) 评论(0) 推荐(4) 编辑
摘要:股票的最大利润 题目描述 可以有一次买入和一次卖出,买入必须在前。求最大收益。 例子:题目描述 [7, 1, 5, 3, 6, 4] 最大利润为 6 - 1 = 5 题目链接: 股票的最大利润 代码 /** * 标题:股票的最大利润 * 可以有一次买入和一次卖出,买入必须在前。求最大收益。 * 例子 阅读全文
posted @ 2022-03-17 21:49 醉舞经阁 阅读(25) 评论(0) 推荐(4) 编辑
摘要:n 个骰子的点数 题目描述 把 n 个骰子仍在地上,求点数和为 s 的概率。 题目链接: n 个骰子的点数 代码 import java.util.AbstractMap; import java.util.ArrayList; import java.util.List; import java. 阅读全文
posted @ 2022-03-16 22:20 醉舞经阁 阅读(60) 评论(0) 推荐(4) 编辑
摘要:最长不含重复字符的子字符串 题目描述 输入一个字符串(只包含 a~z 的字符),求其最长不含重复字符的子字符串的长度。例如对于 arabcacfr,最长不含重复字符的子字符串为 acfr,长度为 4。 题目链接: 最长不含重复字符的子字符串 代码 import java.util.Arrays; / 阅读全文
posted @ 2022-03-15 23:31 醉舞经阁 阅读(25) 评论(0) 推荐(0) 编辑
摘要:礼物的最大价值 题目描述 在一个 m*n 的棋盘的每一个格都放有一个礼物,每个礼物都有一定价值(大于 0)。从左上角开始拿礼物,每次向右或向下移动一格,直到右下角结束。 给定一个棋盘,求拿到礼物的最大价值。例如,对于如下棋盘 1 10 3 8 12 2 9 6 5 7 4 11 3 7 16 5 礼 阅读全文
posted @ 2022-03-14 21:54 醉舞经阁 阅读(18) 评论(0) 推荐(4) 编辑
摘要:把数字翻译成字符串 题目描述 给定一个数字,按照如下规则翻译成字符串:1 翻译成“a”,2 翻译成“b”... 26 翻译成“z”。一个数字有多种翻译可能,例如 12258 一共有 5 种,分别是 abbeh,lbeh,aveh,abyh,lyh。实现一个函数,用来计算一个数字有多少种不同的翻译方法 阅读全文
posted @ 2022-02-25 19:38 醉舞经阁 阅读(42) 评论(0) 推荐(4) 编辑
摘要:数字序列中的某一位数字 题目描述 数字以 0123456789101112131415... 的格式序列化到一个字符串中,求这个字符串的第 index 位。 题目链接: 数字序列中的某一位数字 代码 /** * 标题:数字序列中的某一位数字 * 题目描述 * 数字以 0123456789101112 阅读全文
posted @ 2022-02-24 17:01 醉舞经阁 阅读(41) 评论(0) 推荐(4) 编辑
摘要:在 O(1) 时间内删除链表节点 题目描述 在 O(1) 时间内删除链表节点。 **方案:**如果该节点不是尾节点,那么可以直接将下一个节点的值赋给该节点,然后令该节点指向下下个节点,再删除下一个节点,时间复杂度为 O(1)。否则,就需要先遍历链表,找到节点的前一个节点,然后让前一个节点指向 nul 阅读全文
posted @ 2022-02-23 19:37 醉舞经阁 阅读(39) 评论(0) 推荐(4) 编辑
摘要:打印从 1 到最大的 n 位数 题目描述 输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数即 999。 题目链接: 打印从 1 到最大的 n 位数 代码 /** * 标题:打印从 1 到最大的 n 位数 * 题目描述 * 输入数字 阅读全文
posted @ 2022-02-22 19:30 醉舞经阁 阅读(37) 评论(0) 推荐(4) 编辑
摘要:剪绳子 题目描述 给你一根长度为n的绳子,请把绳子剪成整数长的m段(m、n都是整数,n>1并且m>1,m<=n),每段绳子的长度记为k[1],...,k[m]。 请问k[1]x...xk[m]可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是 阅读全文
posted @ 2022-02-21 19:37 醉舞经阁 阅读(15) 评论(0) 推荐(4) 编辑
摘要:机器人的运动范围 题目描述 地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35 阅读全文
posted @ 2022-02-20 11:17 醉舞经阁 阅读(33) 评论(0) 推荐(4) 编辑
摘要:矩阵中的路径 题目描述 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。 例如 a b c e s f c s a d 阅读全文
posted @ 2022-02-19 19:13 醉舞经阁 阅读(36) 评论(0) 推荐(4) 编辑
摘要:滑动窗口的最大值 题目描述 给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5}; 针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个: 阅读全文
posted @ 2022-02-18 09:51 醉舞经阁 阅读(26) 评论(0) 推荐(4) 编辑
摘要:数据流中的中位数 题目描述 如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。我们使用Insert()方法读取数据流,使用GetMedian()方法获取当前读取数据 阅读全文
posted @ 2022-02-17 10:02 醉舞经阁 阅读(16) 评论(0) 推荐(4) 编辑
摘要:二叉查找树的第 K 个结点 题目描述 给定一棵二叉搜索树,请找出其中的第k小的结点。 题目链接: 二叉查找树的第 K 个结点 代码 /** * 标题:二叉查找树的第 K 个结点 * 题目描述 * 给定一棵二叉搜索树,请找出其中的第k小的结点。 * 题目链接: * https://www.nowcod 阅读全文
posted @ 2022-02-16 17:18 醉舞经阁 阅读(35) 评论(0) 推荐(4) 编辑
摘要:序列化二叉树 题目描述 请实现两个函数,分别用来序列化和反序列化二叉树。 二叉树的序列化是指:把一棵二叉树按照某种遍历方式的结果以某种格式保存为字符串,从而使得内存中建立起来的二叉树可以持久保存。 序列化可以基于先序、中序、后序、层序的二叉树遍历方式来进行修改,序列化的结果是一个字符串,序列化时通过 阅读全文
posted @ 2022-02-15 17:44 醉舞经阁 阅读(30) 评论(0) 推荐(4) 编辑
摘要:把二叉树打印成多行 题目描述 从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。 题目链接: 把二叉树打印成多行 代码 import java.util.ArrayList; import java.util.LinkedList; import java.util.Queue; /* 阅读全文
posted @ 2022-01-18 00:05 醉舞经阁 阅读(30) 评论(0) 推荐(4) 编辑
摘要:按之字形顺序打印二叉树 题目描述 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。 题目链接: 按之字形顺序打印二叉树 代码 import java.util.ArrayList; import java 阅读全文
posted @ 2022-01-17 10:12 醉舞经阁 阅读(25) 评论(0) 推荐(4) 编辑
摘要:对称的二叉树 题目描述 请实现一个函数,用来判断一棵二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。 题目链接: 对称的二叉树 代码 /** * 标题:对称的二叉树 * 题目描述 * 请实现一个函数,用来判断一棵二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜 阅读全文
posted @ 2022-01-16 16:03 醉舞经阁 阅读(41) 评论(0) 推荐(4) 编辑
摘要:二叉树的下一个结点 题目描述 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。 题目链接: 二叉树的下一个结点 代码 /** * 标题:二叉树的下一个结点 * 题目描述 * 给定一个二叉树和其中的一个结点,请找出中 阅读全文
posted @ 2022-01-15 09:26 醉舞经阁 阅读(29) 评论(0) 推荐(4) 编辑

点击右上角即可分享
微信分享提示