代码即艺术 
  • 首页
  • 归档
  • 分类
  • 标签
  • 入门
  • 关于
  • 公益404
  •   
  •   
剑指offer 面试题40. 最小的k个数(易)

剑指offer 面试题40. 最小的k个数(易)

海量数据Top-K问题,要了解从 \(O(nlog_{2}n)\) 到 \(O(n)\) 的多种方法。如果面试时遇到的面试题有多种解法,并且每种解法都各有优缺点,那么我们要向面试官问清楚题目的要求、输入的特点,从而选择最合适的解法。

2020-05-11
剑指offer
二分查找和搜索 图与堆
剑指offer 面试题39. 数组中出现次数超过一半的数字(易)& LeetCode 169. 多数元素(易)

剑指offer 面试题39. 数组中出现次数超过一半的数字(易)& LeetCode 169. 多数元素(易)

看到这道题,很多应聘者就会想要是这个数组是排序的数组就好了。 如果是排好序的数组,那么我们就能很容易统计出每个数字出现的次数。题目给出的数组没有说是排序的,因此我们需要先给它排序。排序的时间复杂度是\(O(nlogn)\)。最直观的算法通常不是面试官满意的算法,接下来我们试着找出更快的算法,空间复杂度更小的算法。

2020-05-10
LeetCode 剑指offer
数组与指针 二分查找和搜索
剑指offer 面试题38. 字符串的排列(中)

剑指offer 面试题38. 字符串的排列(中)

典型的对带重复元素的输入进行全排列计算的问题,基于回溯算法解决。

2020-05-10
剑指offer
回溯算法
面试题37. 序列化二叉树(难)& LeetCode 297. 二叉树的序列化与反序列化(难)

面试题37. 序列化二叉树(难)& LeetCode 297. 二叉树的序列化与反序列化(难)

序列化就是广度优先遍历,反序列化就是构造二叉树。

2020-05-10
LeetCode 剑指offer
树
面试题36. 二叉搜索树与双向链表(中)& LeetCode 426. 将二叉搜索树转化为排序的双向链表(中)

面试题36. 二叉搜索树与双向链表(中)& LeetCode 426. 将二叉搜索树转化为排序的双向链表(中)

我们可以把树分为3部分:根节点、左子树和右子树,然后把左子树中最大的节点、根节点、右子树中最小的节点链接起来。至于如何把左子树和右子树内部的节点链接成链表,那和原来的问题的实质是一样的,因此可以递归解决。解决这个问题的关键在于把一个大的问题分解成几个小问题,并递归地解决小问题。

2020-05-10
LeetCode 剑指offer
树 分治算法 链表
1…2223242526…82

搜索

Hexo Fluid