Java for You 数据结构 字节面试高频百题(三)

字节面试高频百题(三)

41、判断回文

牛客 141 判断是否为回文字符串:

​

思路:

  • 前后指针相向而行

​

42、单链表的排序

牛客70 单链表的排序:

​

思路:

  • 1、快慢指针找中点,拆成两个链表,合并
  • 2、堆排序

​

43、数组中出现次数超过一半的数字

牛客 73 数组中出现次数超过一半的数字:

​

思路:

  • 排序取中位数
  • 哈希表存数值到个数的映射
  • 投票法。假设某个数是众数,则票数+1,遇到非嫌疑众数的数,票数-1,当票数为0则说明当前数不是众数

​

​

44、平衡二叉树

力扣110/牛客 62 判断是否为平衡二叉树:

​

思路:

  • dfs,判断左子树为平衡树,判断右子树为平衡树,左子树深度和右子树深度差距小于等于1为平衡树

​

O(n)解法:

​

O(n2)解法:

45、矩阵的最小路径和

力扣 64/牛客 59 矩阵最小路径和:

​

思路:

  • 动态规划:dp[i][j] = dp[i][j] + Min(matrix[i][j-1],matrix[i-1][j])
  • dfs,要求空间复杂度为O(n),则说明不能再新建 dp 矩阵,直接使用matrix

​

46、表达式求值

牛客 137 表达式求值:

​

思路:

  • 栈+递归

​

47、逆波兰表达式求值

牛客 216 逆波兰表达式求值:

​

​

思路:

  • 栈。遇到数字入栈,遇见符号弹出两个数字做运算,然后将结果入栈

48、最小的K个数

牛客 119 最小的K个数:

​

思路:

  • topk 问题求最小,建大顶堆

​

自建大顶堆的代码:

​

使用JDK优先级队列的代码:

​

49、字符串出现次数的TopK问题

牛客97 字符串出现次数的TopK问题:

思路:

  • 最大堆实现的优先级队列

50、进制转换

牛客 112 进制转换:

​

思路:

  • 除N取余,然后倒序排列,高位补零。

​

51、判断一个链表是否为回文结构

牛客 96 判断一个链表是否为回文结构

​

思路:

  • 找到中间节点,反转后半部分,两部分从头等值比对

52、二叉树中和为某一值的路径(是否存在)

牛客 9 二叉树中和为某一值的路径(一):

思路:

  • 前序遍历,每走过一个节点更新 sum 值,sum 为0 且是叶子节点更新路径和标识,并退出

​

53、二叉树中和为某一值的路径(所有路径)

牛客 8 二叉树中和为某一值的路径(二)::

​

​

思路:

  • 回溯的思路,在(一)的遍历基础上增加路径更新、结果追加、撤销选择的逻辑。

​

54、二叉树中和为某一值的路径(所有子路径)

牛客 162 二叉树中和为某一值的路径(三):

思路:

  • 在(二)的基础上,再次进行树的遍历统计路径数
  • 注意:路径不再要求叶子节点结束

55、链表内指定区间反转

力扣 92 反转链表2:

​

牛客21 链表内指定区间反转:

​

56、不同路径的数目

力扣 63/牛客 34 不同路径的数目:

​

思路:

  • dp 迭代 or 递归

​

57、合并区间

力扣 56/牛客 37 合并区间:

​

思路:

  • 对于几个相交区间合并后的结果区间 x,x.start 一定是这些相交区间中 start 最小的,x.end 一定是这些相交区间中 end 最大的
  • 对 start 排序

​

58、排序数组中找到上中位数

牛客 36 在两个长度相等的排序数组中找到上中位数:

​

思路:

  • 双指针

​

59、搜索二叉树和完全二叉树

牛客 60 判断一棵二叉树是否为搜索二叉树和完全二叉树

​

思路:

  • 搜索二叉树,明确定义是 root为左子树的最大值,右子树的最小值,遍历参数引入双节点
  • 完全二叉树,每一层不存在空节点。层序遍历,null值也入队。遍历遇到空节点,检查队列是否还有非空节点,存在说明二叉树不完全。

​

60、删除有序链表中重复的元素-II

牛客 24 删除有序链表中重复的元素-II

​

思路:

  • 双指针,隔一齐头并进,出现重复则只前进快指针,直到不相等的时候执行删除操作

​

本文由 java4u.cn 发布,可自由转载、引用,但需署名作者且注明文章出处(作者:白色蜗牛,出处:java4u.cn)。如转载至微信公众号,请在文末添加作者公众号二维码。 https://java4u.cn/algorithms/3266.html

作者: 蜗牛

二叉树的序列化与反序列化 | LeetCode 297

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

联系我们

公众号:蜗牛互联网

在线咨询: QQ交谈

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部