【每日打卡】 [剑指 offer] 面试题 40-最小的 k 个数
一、题目描述 输入整数数组 arr ,找出其中最小的 k 个数。例如,输入 4 、 5 、 1 、 6 、 2 、 7 、 3 、 8 这 8 个数字,则最小的 4 个数字是 1 、 2 、 3 、 4 。 示例 1: 输入:arr = [3,2,1], k = 2 输出:[1,2] 或者 [2,1] 示例 2: 输入:arr = [0,1,2,1], ... 阅读更多
一、题目描述 输入整数数组 arr ,找出其中最小的 k 个数。例如,输入 4 、 5 、 1 、 6 、 2 、 7 、 3 、 8 这 8 个数字,则最小的 4 个数字是 1 、 2 、 3 、 4 。 示例 1: 输入:arr = [3,2,1], k = 2 输出:[1,2] 或者 [2,1] 示例 2: 输入:arr = [0,1,2,1], ... 阅读更多
来源:力扣 (LeetCode) 链接:https://leetcode-cn.com/problems/majority-element 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 这道题也是 《剑指 offer 》原题——面试题 39 数组中出现次数超过一半的数字。 https:/ ... 阅读更多
一、题目描述 请实现函数 complex_list_node *clone_list(complex_list_node *head),复制一个复杂链表。在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random 指针指向链表中的随机节点或 nullptr 。节点的 C++定义如下: [ ... 阅读更多
一、题目 输入一个链表,输出该链表中倒数第 k 个节点,为了符合大多数人的习惯,k 的序号从 1 开始,即链表的尾结点是倒数第一个节点。 例如,如下链表中的倒数第 3 个节点是 3: 二、解题思路 使用快慢指针,快指针先走 n 步,然后快慢指针同时走,直到快指针为 null,慢指针就是倒数第 n 个节点。 以上面的链表为例, ... 阅读更多
一、题目 给定一颗二叉树和其中的一个节点,如何找出中序遍历序列的下一个节点?树中的节点除了有两个分别指向左右子节点的指针,还有一个指向父节点的指针。 以下面的二叉树为例,它的中序遍历序列是:[2, 4, 1, 5, 3, 6],节点 4 的下一个节点是 1,节点 3 的下一个节点是 5 。 二、分析 画出上面这棵 ... 阅读更多
一、题目 输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不包含重复的数字。 例如,输入前序遍历序列 [1, 2, 4, 7, 3, 5, 6, 8] 和中序遍历序列 [4, 7, 2, 1, 5, 3, 8, 6],则重建如下图所示的二叉树并输出它的头结点: ... 阅读更多