AlgorithmAndDataStructure icon indicating copy to clipboard operation
AlgorithmAndDataStructure copied to clipboard

互联网行业研发岗面试必备算法题配图解析及代码

计划完成牛客网剑指Offer习题以及LeetCode中的100+道,持续更新,剑指Offer的题主要用python,LeetCode的题会用Java。另外Android、Java岗面试必备知识点与常见面试题见另一个仓库,涉及Java、Android、数据库原理、操作系统、计算机网络等。

牛客网-剑指offer

  • 二维数组中的查找

  • 替换空格

  • 从尾到头打印链表

  • 重建二叉树

  • 用两个栈实现队列

  • 旋转数组的最小数字

  • 跳台阶

  • 变态跳台阶

  • 矩形覆盖

  • 二进制中1的个数

  • 数值的整数次方

  • 调整数组顺序使奇数位于偶数前面

  • 链表中倒数第k个节点

  • 反转链表

  • 合并两个排序的链表

  • 树的子结构

  • 树的镜像

  • 顺时针打印矩阵

  • 包含min函数的栈

  • 栈的压入&弹出顺序

  • 从上往下打印二叉树

  • 二叉搜索树的后序遍历

  • 二叉树中和为某一数的路径

  • 复杂链表的复制

  • 二叉搜索树与双向链表

  • 字符串的排列

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

  • 最小的K个数

  • 连续子数组的最大和

  • 把数组排成最小的数

  • 整数中1出现的次数

  • 丑数

  • 第一次只出现一次的字符

  • 两个链表的第一个公共节点

  • 数字在排序数组中出现的次数

  • 二叉树的深度

  • 平衡二叉树

  • 数组中只出现一次的数字

  • 和为s的连续正数序列

  • 和为s的两个数字

  • 左旋字符串

  • 翻转单词序列

  • 扑克牌顺子

  • 圆圈中的最后数字

  • 不能用循环的1到n之和

  • 不用加减乘除做加法

  • 将字符串转为整数

  • 寻找数组中任意一个重复的数字

  • 构建乘积数组

  • 正则表达式匹配

  • 字符流中第一个不重复的字符

  • 最大陆地问题

  • 机器人的运动范围

  • 矩阵中的路径

  • 滑动窗口的最大值

  • 数据流的中位数

  • 数组中的逆序对

  • 表示数值的字符串

  • 二叉搜索树的第k个节点

  • 序列化二叉树

  • 把二叉树打印成多行(层序遍历)

  • 按之字形打印二叉树

  • 对称的二叉树

  • 二叉树的下一个节点

  • 删除有序链表中重复的节点

  • 链表中环的入口节点

  • 字符流中第一个不重复的字符

  • 表示数字的字符串

LeetCode

  • minimum-depth-of-binary-tree(求解二叉树的最小深度)
  • evaluate-reverse-polish-notation(计算逆波兰式的值)
  • max-points-on-a-line(同一条直线上的最多的点的数量)
  • sort-list(排序List)
  • insertion-sort-list(使用插入排序对链表进行排序)
  • binary-tree-postorder-traversal(后序遍历二叉树)
  • binary-tree-preorder-traversal(先序遍历二叉树)
  • reorder-list(链表重排序)
  • linked-list-cycle-ii(找出链表中环的入口节点)
  • linked-list-cycle(判断链表中是否存在环)
  • word-break(单词切分)
  • word-break-ii(单词切分2)
  • copy-list-with-random-pointer(拷贝具有随机指针的链表)
  • single-number(出现一次的数)
  • single-number-ii(出现一次的数2)
  • candy(糖果问题)
  • Gas-station(加油站问题)
  • clone-graph(图的复制)