777 Interview Notes
  • 🎯ᐕ)୨ 戳我戳我
  • 社招
    • 叨叨
  • 外企
    • 上海外企汇总
  • 数据结构与算法
    • 简介
    • 题型
      • Template
      • 动态规划
        • LEETCODE 5. 最长回文子串
        • LEETCODE 32. 最长有效括号
        • LEETCODE 44. 通配符匹配
        • LEETCODE 62. 不同路径
        • LEETCODE 63. 不同路径 II
        • LEETCODE 64. 最小路径和
        • LEETCODE 97. 交错字符串
        • LEETCODE 120. 三角形最小路径和
        • LEETCODE 122. 买卖股票的最佳时机 II
        • LEETCODE 139. 单词拆分
        • LEETCODE 174. 地下城游戏
        • LEETCODE 188. 买卖股票的最佳时机 IV
        • *LEETCODE 222. 完全二叉树的节点个数
        • LEETCODE 309. 最佳买卖股票时机含冷冻期
        • LEETCODE 343. 整数拆分
        • LEETCODE 494. 目标和
        • LEETCODE 718. 最长重复子数组
        • LEETCODE 837. 新21点
        • LEETCODE 1014. 最佳观光组合
        • LCOF 10-II. 青蛙跳台阶问题
        • LCOF 14-I. 剪绳子
        • LCOF 19. 正则表达式匹配
        • LCOF 42. 连续子数组的最大和
        • LCOF 46. 把数字翻译成字符串
        • LCOF 47. 礼物的最大价值
        • LCOF 48. 最长不含重复字符的子字符串
        • LCOF 49. 丑数
        • LCOF 63. 股票的最大利润
      • 贪心
        • LEETCODE 12. 整数转罗马数字
        • LEETCODE 122. 买卖股票的最佳时机 II
        • *LEETCODE 316. 去除重复字母
        • LEETCODE 435. 无重叠区间
        • LEETCODE 455. 分发饼干
        • LEETCODE 605. 种花问题
        • LEETCODE 860. 柠檬水找零
        • LEETCODE 1046. 最后一块石头的重量
        • LCOF 14-I. 剪绳子
        • LCOF 14-II. 剪绳子 II
      • 双指针
        • LEETCODE 4. 寻找两个正序数组的中位数
        • LEETCODE 19. 删除链表的倒数第N个节点
        • LEETCODE 75. 颜色分类
        • LEETCODE 86. 分隔链表
        • LCOF 04. 二维数组中的查找
        • LCOF 21. 调整数组顺序使奇数位于偶数前面
        • LCOF 24. 反转链表
        • LCOF 52. 两个链表的第一个公共节点
        • LCOF 57. 和为s的两个数字
        • LCOF 58 - I. 翻转单词顺序
      • 滑动窗口
        • LEETCODE 239. 滑动窗口最大值
        • LEETCODE 424. 替换后的最长重复字符
        • LEETCODE 643. 子数组最大平均数 I
        • LEETCODE 1208. 尽可能使字符串相等
        • LEETCODE 1423. 可获得的最大点数
        • LCOF 59 - I. 滑动窗口的最大值
      • 深度优先搜索
        • LEETCODE 207. 课程表
        • *LEETCODE 210. 课程表 II
        • LEETCODE 329. 矩阵中的最长递增路径
        • LEETCODE 547. 省份数量
        • LEETCODE 785. 判断二分图
        • LCOF 12. 矩阵中的路径
        • LCOF 13. 机器人的运动范围
        • LCOF 34. 二叉树中和为某一值的路径
        • LCOF 38. 字符串的排列
        • LCOF 54. 二叉搜索树的第k大节点
        • LCOF 55 - I. 二叉树的深度
        • LCOF 55 - II. 平衡二叉树
        • LCOF 68 - II. 二叉树的最近公共祖先
      • 广度优先搜索
        • LEETCODE 547. 省份数量
        • LCOF 32 - I. 从上到下打印二叉树
        • LCOF 32 - II. 从上到下打印二叉树 II
        • LCOF 32 - III. 从上到下打印二叉树 III
        • LCOF 55 - I. 二叉树的深度
      • 前缀和
        • LEETCODE 560. 和为K的子数组
      • 背包问题
        • LEETCODE 494. 目标和
      • HashMap
        • LEETCODE 128. 最长连续序列
        • LEETCODE 242. 有效的字母异位词
        • LEETCODE 350. 两个数组的交集 II
        • LEETCODE 560. 和为K的子数组
        • LCOF 03. 数组中重复的数字
        • LCOF 35. 复杂链表的复制
        • LCOF 50. 第一个只出现一次的字符
      • HashSet
        • LEETCODE 888. 公平的糖果棒交换
        • LCOF 61. 扑克牌中的顺子
      • 数组
        • LEETCODE 31. 下一个排列
        • LEETCODE 75. 颜色分类
        • LEETCODE 189. 旋转数组
        • LEETCODE 228. 汇总区间
        • LEETCODE 442. 数组中重复的数据
        • LEETCODE 448. 找到所有数组中消失的数字
        • LEETCODE 560. 和为K的子数组
      • 模拟
        • LEETCODE 860. 柠檬水找零
        • LCOF 29. 顺时针打印矩阵
        • LCOF 31. 栈的压入、弹出序列
      • 排序
        • LCOF 45. 把数组排成最小的数
        • LCOF 51. 数组中的逆序对
      • 递归
        • LCOF 06. 从尾到头打印链表
        • LCOF 07. 重建二叉树
        • LCOF 10-I. 斐波那契数列
        • LCOF 16. 数值的整数次方
        • LCOF 24. 反转链表
        • LCOF 25. 合并两个排序的链表
        • LCOF 26. 树的子结构
        • LCOF 27. 二叉树的镜像
        • LCOF 28. 对称的二叉树
        • LCOF 64. 求1+2+…+n
      • 队列
        • LCOF 59 - I. 滑动窗口的最大值
        • LCOF 59 - II. 队列的最大值
      • 字符串
        • LEETCODE 5. 最长回文子串
        • *LEETCODE 165. 比较版本号
        • LEETCODE 205. 同构字符串
        • LEETCODE 242. 有效的字母异位词
        • LEETCODE 678. 有效的括号字符串
        • LEETCODE 830. 较大分组的位置
        • LCOF 05. 替换空格
        • LCOF 20. 表示数值的字符串
        • LCOF 38. 字符串的排列
        • LCOF 45. 把数组排成最小的数
        • LCOF 58 - I. 翻转单词顺序
        • LCOF 58 - II. 左旋转字符串
        • LCOF 67. 把字符串转换成整数
      • 二分查找
        • LEETCODE 4. 寻找两个正序数组的中位数
        • LEETCODE 33. 搜索旋转排序数组
        • LEETCODE 34. 在排序数组中查找元素的第一个和最后一个位置
        • LEETCODE 153. 寻找旋转排序数组中的最小值
        • LEETCODE 154. 寻找旋转排序数组中的最小值 II
        • LEETCODE 278. 第一个错误的版本
        • LEETCODE 704. 二分查找
        • LEETCODE 744. 寻找比目标字母大的最小字母
        • LEETCODE 852. 山脉数组的峰顶索引
        • LCOF 11. 旋转数组的最小数字
        • LCOF 53 - I. 在排序数组中查找数字 I
        • LCOF 53 - II. 0~n-1中缺失的数字
      • 位运算
        • LEETCODE 338. 比特位计数
        • LEETCODE 461. 汉明距离
        • LCOF 15. 二进制中1的个数
        • LCOF 56 - I. 数组中数字出现的次数
        • LCOF 56 - II. 数组中数字出现的次数 II
      • 链表
        • LEETCODE 19. 删除链表的倒数第N个节点
        • LEETCODE 86. 分隔链表
        • # LEETCODE 234. 回文链表
        • LEETCODE 237. 删除链表中的节点
        • LCOF 06. 从尾到头打印链表
        • LCOF 18. 删除链表的节点
        • LCOF 22. 链表中倒数第k个节点
        • LCOF 24. 反转链表
        • LCOF 25. 合并两个排序的链表
        • LCOF 35. 复杂链表的复制
        • LCOF 36. 二叉搜索树与双向链表
        • LCOF 52. 两个链表的第一个公共节点
      • 二叉树
        • LEETCODE 94. 二叉树的中序遍历
        • LEETCODE 95. 不同的二叉搜索树 II
        • LEETCODE 96. 不同的二叉搜索树
        • # LEETCODE 98. 验证二叉搜索树
        • LEETCODE 104. 二叉树的最大深度
        • LEETCODE 108. 将有序数组转换为二叉搜索树
        • LEETCODE 112. 路径总和
        • # LEETCODE 144. 二叉树的前序遍历
        • LEETCODE 543. 二叉树的直径
        • LEETCODE 617. 合并二叉树
        • LEETCODE 958. 二叉树的完全性检验
        • LCOF 07. 重建二叉树
        • LCOF 26. 树的子结构
        • LCOF 27. 二叉树的镜像
        • LCOF 28. 对称的二叉树
        • LCOF 32 - I. 从上到下打印二叉树
        • LCOF 32 - II. 从上到下打印二叉树 II
        • LCOF 32 - III. 从上到下打印二叉树 III
        • LCOF 33. 二叉搜索树的后序遍历序列
        • LCOF 34. 二叉树中和为某一值的路径
        • LCOF 36. 二叉搜索树与双向链表
        • LCOF 37. 序列化二叉树
        • LCOF 54. 二叉搜索树的第k大节点
        • LCOF 55 - I. 二叉树的深度
        • LCOF 55 - II. 平衡二叉树
        • LCOF 68 - I. 二叉搜索树的最近公共祖先
        • LCOF 68 - II. 二叉树的最近公共祖先
      • 堆
        • LEETCODE 215. 数组中的第K个最大元素
        • LEETCODE 1046. 最后一块石头的重量
        • LCOF 40. 最小的k个数
        • LCOF 41. 数据流中的中位数
      • 栈
        • LEETCODE 32. 最长有效括号
        • LCOF 06. 从尾到头打印链表
        • LCOF 09. 用两个栈实现队列
        • LCOF 27. 二叉树的镜像
      • 大数
      • 数学
        • LEETCODE 16. 最接近的三数之和
        • LEETCODE 9. 回文数
        • LEETCODE 238. 除自身以外数组的乘积
        • LEETCODE 990. 等式方程的可满足性
        • LCOF 43. 1~n 整数中 1 出现的次数
        • LCOF 44. 数字序列中某一位的数字
        • LCOF 62. 圆圈中最后剩下的数字
        • LCOF 67. 把字符串转换成整数
      • 多线程
      • 回溯
        • LEETCODE 17. 电话号码的字母组合
        • LEETCODE 46. 全排列
        • LCOF 34. 二叉树中和为某一值的路径
        • LCOF 38. 字符串的排列
      • 设计
        • LEETCODE 146. LRU缓存机制
        • LCOF 30. 包含min函数的栈
        • LCOF 37. 序列化二叉树
        • LCOF 41. 数据流中的中位数
        • LCOF 59 - II. 队列的最大值
      • 分治
        • LCOF 16. 数值的整数次方
        • LCOF 17. 打印从1到最大的n位数
        • LCOF 33. 二叉搜索树的后序遍历序列
        • LCOF 36. 二叉搜索树与双向链表
        • LCOF 40. 最小的k个数
        • LCOF 51. 数组中的逆序对
    • 剑指Offer
      • 03. 数组中重复的数字【排序/哈希/比较交换】
      • 04. 二维数组中的查找【线性查找】
      • 05. 替换空格【字符串】
      • 06. 从尾到头打印链表【栈/递归】
      • 07. 重建二叉树【递归】
      • 09. 用两个栈实现队列【辅助栈】
      • 10-I. 斐波那契数列【DP】
      • 10-II. 青蛙跳台阶问题【DP】
      • 11. 旋转数组的最小数字【二分查找】
      • 12. 矩阵中的路径【DFS】
      • 13. 机器人的运动范围【DFS/BFS】
      • 14-I. 剪绳子【DP/贪心】
      • 14-II. 剪绳子 II【贪心】
      • 15. 二进制中1的个数【位运算】
      • 16. 数值的整数次方【分治】
      • *17. 打印从1到最大的n位数
      • 18. 删除链表的节点
      • *19. 正则表达式匹配
      • 20. 表示数值的字符串
      • 21. 调整数组顺序使奇数位于偶数前面【双指针】
      • 22. 链表中倒数第k个节点【快慢指针】
      • 24. 反转链表【递归/双指针】
      • 25. 合并两个排序的链表【递归】
      • 26. 树的子结构【递归】
      • 27. 二叉树的镜像【递归/辅助栈】
      • 28. 对称的二叉树【递归】
      • 29. 顺时针打印矩阵【模拟】
      • 30. 包含min函数的栈【辅助栈】
      • 31. 栈的压入、弹出序列【辅助栈】
      • 32 - I. 从上到下打印二叉树【BFS】
      • 32 - II. 从上到下打印二叉树 II【BFS】
      • 32 - III. 从上到下打印二叉树 III【BFS 双端队列】
      • 33. 二叉搜索树的后序遍历序列【分治 递归】
      • 34. 二叉树中和为某一值的路径【递归 回溯】
      • *35. 复杂链表的复制【哈希表】
      • 36. 二叉搜索树与双向链表【DFS】
      • 37. 序列化二叉树【BFS】
      • 38. 字符串的排列【DFS】
      • *39. 数组中出现次数超过一半的数字【哈希/摩尔投票】
      • 40. 最小的k个数【堆】
      • 41. 数据流中的中位数【堆】
      • 42. 连续子数组的最大和【DP】
      • 43. 1~n 整数中 1 出现的次数【找规律】
      • 44. 数字序列中某一位的数字【找规律】
      • 45. 把数组排成最小的数【排序】
      • 46. 把数字翻译成字符串【DP】
      • 47. 礼物的最大价值【DP】
      • 48. 最长不含重复字符的子字符串【滑动窗口】
      • 49. 丑数【DP】
      • 50. 第一个只出现一次的字符【哈希表】
      • *51. 数组中的逆序对【归并排序】
      • 52. 两个链表的第一个公共节点【双指针】
      • 53 - I. 在排序数组中查找数字 I【二分查找】
      • 53 - II. 0~n-1中缺失的数字【二分查找/位运算】
      • 54. 二叉搜索树的第k大节点【中序遍历】
      • 55 - I. 二叉树的深度【DFS/BFS】
      • 55 - II. 平衡二叉树【DFS】
      • 56 - I. 数组中数字出现的次数【位运算】
      • 56 - II. 数组中数字出现的次数 II【位运算】
      • 57. 和为s的两个数字【双指针/哈希表】
      • 57 - II. 和为s的连续正数序列【双指针】
      • 58 - I. 翻转单词顺序【双指针】
      • 58 - II. 左旋转字符串【字符串】
      • *59 - I. 滑动窗口的最大值【滑动窗口】
      • 59 - II. 队列的最大值【队列】
      • *60. n个骰子的点数【DP】
      • 61. 扑克牌中的顺子【Set/排序】
      • 62. 圆圈中最后剩下的数字【约瑟夫环】
      • 63. 股票的最大利润【DP】
      • 64. 求1+2+…+n【短路】
      • 65. 不用加减乘除做加法【位运算】
      • *66. 构建乘积数组【DP】
      • 67. 把字符串转换成整数
      • 68 - I. 二叉搜索树的最近公共祖先【迭代/递归】
      • 68 - II. 二叉树的最近公共祖先【递归】
    • 常见问题
      • 俩必须掌握的排序
      • 腾讯常见问题
      • 字节常见问题
  • 计算机网络
    • 简介
    • 基础知识
      • 综述
      • 物理层
      • 链路层
      • 网络层
      • 传输层
      • 应用层
        • HTTP
    • 常见问题
      • 常见问题带答案
  • 操作系统
    • 简介
    • 基础知识
      • 概述
      • 进程管理
      • 死锁
      • 内存管理
      • 设备管理
      • 链接
    • 常见问题
  • 数据库
    • 简介
    • 基础知识
      • SQL 语法
      • 数据库系统基础
    • 常见问题
  • Java
    • 简介
    • 基础知识
      • Java 基础
      • Java 容器
      • Java 并发
      • Java 虚拟机
      • Java I/O
    • 常见问题
  • Android
    • 简介
    • 基础知识
      • Android 基础
      • Android 进阶
      • 开源框架
      • 具体场景分析
    • 常见问题
  • 面经
    • 简介
      • 777牌面筋
    • 腾讯面经汇总
      • 实习
      • 提前批
      • 秋招
    • 阿里面经汇总
      • 杂
      • HR 面准备
    • 字节跳动面经汇总
      • 实习
        • Android
          • 字节跳动客户端一二面面经
          • 字节客户端暑期实习一面面经
          • 字节跳动客户端面试经历
          • 字节实习面筋
          • 移动客户端开发(抖音)面经
          • [21届秋招] 字节——安卓开发实习生 面经
          • 字节跳动-头条Android开发实习生面试
          • 字节 安卓一面面经
          • 字节跳动安卓客户端面经
          • 字节跳动安卓日常实习生凉经
          • 字节 客户端开发 一面
          • 字节安卓实习一面
          • 字节跳动客户端一面面经
          • 字节跳动安卓实习一二面面经
          • BAT集齐!Java/安卓暑期实习面经汇总
          • 字节跳动(Andriod方向)一二三面面经
          • 字节客户端神奇二面
          • 字节抖音(一面客户端开发)
          • 字节跳动安卓、后端实习5轮面经
          • 2020技术开发岗面经:腾讯 & 字节跳动(已Offer)
          • 字节跳动安卓客户端面经(安卓开发零经验)
          • 字节跳动Android客户端一面凉经
          • 西瓜视频一面
          • 头条三面面筋+HR(已上岸,感谢各位牛友的帮助)
          • 字节跳动android实习生一面二面
          • 字节跳动 客户端实习生 1-5面 面经
          • 2019春招实习Android面试总结(后续再发秋招总结)
          • 字节客户端安卓开发三面面经
          • 字节跳动效率工程提前批Android实习面经
          • 字节 客户端 一二面面经 下周三面
          • 【字节跳动安卓暑假实习一面】
          • 字节跳动Android实习面经
          • 字节跳动 Android客户端 一~三面(已收到offer)
          • 字节跳动暑期实习Android一二三hr面经(offer)
        • iOS
          • 字节ios懂车帝实习 三面已过
          • 字节懂车帝IOS实习一面面经
          • 字节飞书iOS客户端实习一面面经
          • 字节飞书iOS客户端二面面经[已OC]
          • 字节跳动iOS客户端实习面经
          • 字节飞书iOS客户端日常实习面经 一二面+HR面
          • 21届字节ios开发日常实习 一二三面面经(已拿offer)
          • 字节iOS客户端实习123面经
          • 字节iOS客户端实习 三次技术面面经
          • 字节跳动 iOS日常实习三面+hr面挂
          • 字节跳动ios客户端一二三四+hr面(已收到offer)
          • 字节IOS客户端实习面经
          • iOS实习面经(字节美团阿里蘑菇街)
          • 字节跳动面经|iOS开发|大三暑期实习(已收offer)
          • 字节ios[深圳]实习一面面经
          • 字节跳动飞书iOS开发一二面
          • 字节跳动ios客户端实习3+hr面经【已拿offer】
          • 字节客户端三面完成后两天接到hr电话 ,许愿offer
          • 字节跳动iOS客户端日常实习一、二、三面凉经
          • 21届大三抖音ios 一面 二面 三面 面经(挂hr……)
          • 字节跳动iOS客户端实习生面经
          • 抖音iOS 暑期实习 过经(问了安卓)
          • 字节跳动 IOS开发实习 面经 (内附投递经验与总结!)
          • 字节三面问题整理
      • 提前批
        • 字节跳动的校招面试精髓(提前批免笔试)
        • 字节提前批移动端面经(1-3面)已拿意向书
        • 字节跳动客户端开发两次一轮游(21 届秋招)
        • 字节提前批。客户端开发一面二面
        • 字节提前批 安卓客户端加面 四面
        • 字节跳动 客户端开发提前批一面凉经
        • 字节跳动提前批安卓客户端 一二三四+HR面(已意向书)
        • 字节跳动提前批客户端至二面(凉透经)
        • 字节提前批-客户端Android一面面经
        • 字节提前批客户端一二三面面经(已凉)
        • 字节跳动抖音Android客户端一二三面面经
        • 字节客户端开发面经
      • 秋招
        • 2020年字节跳动秋招面经(抖音全栈已oc)
        • 字节客户端 一、二面面经,许愿三面~
        • 字节客户端三~四面面经,已oc(更新:已邮件)
        • 字节客户端几乎无安卓基础三面面经
        • 字节客户端抖音一二三面凉经
        • 上海抖音客户端开发面经
        • 字节跳动安卓工程师一面凉
        • 字节跳动客户端一面二面凉经
        • 字节视频架构一面凉经(安卓)
        • 字节客户端一二三面面经,已收到意向书
        • 字节客户端三面面经分享,求一个意向书(已收到意向书)
        • 字节教育客户端一二面,求个offer
        • 字节跳动客户端开发一面+二面
        • pyer零基础字节跳动客户端面试
        • 字节上海抖音客户端
        • 字节跳动客户端开发0基础 一面凉经
  • 杂
    • Git
    • 智力题
    • 设计模式
      • 单例模式
      • MVC MVP MVVM
    • 简历
  • JAVASCRIPT
    • 简介
    • 基础知识
    • 常见问题
由 GitBook 提供支持
在本页

这有帮助吗?

  1. 数据结构与算法
  2. 常见问题

腾讯常见问题

上一页俩必须掌握的排序下一页字节常见问题

最后更新于4年前

这有帮助吗?

蛮看重排序算法的哦。

喜欢问一些智力题、数学题。

海量数据问题

问红黑树

数组中重复的数据 //

讲思路:玻璃球临界碎点的问题 //

讲思路:爬楼梯问题 // dp

再问你一个数据结构的问题,数组和链表有什么区别?

如果要让你对数组中的数字进行排序你会有哪些方法?// 快排堆排blabla

快速排序是稳定的排序吗?有什么方法尽量避免变量选取不好的情况?

假如说,现在有一个数组,需要你去找到最大的 K 的数字,该怎么实现? // 堆

笔试题1:删除无序链表中的重复结点(能否优化)//

笔试题2:先说一下二叉树的有哪些遍历方法。写一个二叉树前序遍历的非递归形式。//

代码题是一道遍历View树 // 递归 bfs dfs 就是考察树的遍历

编程题:二叉树先序遍历的非递归实现 //

如何找链表倒数第n个元素?快慢指针 //

一个数组插入删除查找和链表的效率对比?如果一个数组要反复插入删除怎么优化降低时间复杂度?(一开始没想到,面试官提示其实就是垃圾回收的算法 原理就是“标记-查找”。每次删除的时候元素不是真的被删除了,而是先标记,最后统一移动数组元素,减少移动次数) // 原来如此

效率高的排序方法 // 时间复杂度是nlogn的:快排、堆排

快速排序时间复杂度 // nlogn

反转链表 两个链表相交,怎么找到那个相交点 // 双指针 lcof52

一大段文章,怎么找到想要的字符串 kmp 算法

红黑树插入复杂度 // logn 查找、插入、删除的时间复杂度都是 logn

数组和链表的区别 // √

数组和链表的优缺点?// √

常见的效率较高的排序算法?时间复杂度分别是多少 // √

如何找出数组中的重复元素?(排序)如果不排序呢?(哈希表)// √

如何实现链表反转?// lcof24 递归和双指针迭代

海量数据如何实现排序后写入文件?前提是内存不够一次性写入所有数据

海量数据如何寻找中位数?不能排序,乱序数组中查找

// 别让我碰到小Q的题,谢谢

算法题:N亿个数,找出里面不重复的数,分配的内存很有限

N多个数,找出里面重复最多的数

链表和队列,队列和栈 // 数据结构基础

算法题:字符串根据字典分割的问题。一开始给的解决方法时间复杂度太高,一直要求优化。

数据结构,好像问了集合?// Collection。Java容器那一节要熟悉

跳台阶 // 斐波那契数列

判断链表相交 // 双指针

判断回文链表 // 使用快慢指针找到链表中点后,反转后半段链表,再进行比较即可

面试官选了一道算法题:从n个数中选出出现次数为奇数次的两个数,并从小到大排序输出 // 异或

// 1 1 2 2 3 3 4 4 4 5 5 5

// a^a=0 a^0=a

手撕生产者消费者代码 // 不想撕

手撕客户端和服务端通信代码 // 还考这种的吗

还有一些问题遗忘了,最后是做一道编程题,二叉树查找相关的,用递归完成了。// 看Notes BST相关

智力题:两个骰子(6面)如何表示2月全部日期 //

编程题考查二叉树Z字型遍历,不能用STL库。// 层次遍历分奇偶层即可 lcof32

编程题两道:中序和后序推导出前序(二叉树递归完成)// lcof07 重建二叉树

给出一个链表删除倒数第五个节点 // leetcode19 快慢指针

编程题是:数组中每个值看作一栋楼的高度,站在数组中的一个位置求前后能看到的楼的数目(高楼挡在前面会看不到后面的楼)

概率题:x%的人喜欢篮球、y%的人喜欢排球、z%的人喜欢足球,问同时喜欢篮球和排球的人是多少

编程题是:两个超大的字符串文件,求他们的最长回文子串,要求不能调用库(当时用动态规划完成,但是时间复杂度为N^2,其实用马拉车算法可以降低复杂度,但当时我并没有练过,所以就把代码交上去了)

// 会个dp差不多啦 leetcode5 最长回文子串

跳台阶知道吧,怎么做啊。// 斐波那契数列

一个链表,让你找最中间的节点,你怎么找? // leetcode876

两个大文件,一个比较大,一个比较小,让你求交集,你怎么做?

我们再问两个智力题吧,没有固定答案,不要限制自己的思路,想到啥说啥,一个粗细不一样的绳子,完整的烧完1个小时,你怎么让他烧15分钟(不一定烧完)。

结合从两头开始烧,半个小时烧完,我给他叭叭了一下,但具体怎么回答的忘了,面试官还给我讲了讲,然后就说嗯,好吧,这题就算你过了。。

一副全新的扑克牌,按顺序的,AAAA,2222,3333,这种,你怎么洗牌能洗散开?

说了几种,我把平时洗牌的绝学亮出来了,他还让我说,我想不出来了,他说,嗯好的,这个题算你过吧。

题目大概和leetcode 59题类似。大概如下,从右上角开始顺时针。剑指offer上也有类似的,反正就是刷题,刷题,刷题啊!!!

输入: 3 输出: [  [ 7, 8, 1 ],  [ 6, 9, 2 ],  [ 5, 4, 3 ] ]

那我们再说说链表和数组?比较一下它们有啥区别吧,然后再说说数组里面删除一个元素会怎么样,插入一个元素会怎么样,修改一个元素会怎么样,会发生什么事情?

快排思想,稳不稳定,怎么判断稳定性,快排空间复杂度,时间复杂度

手撕生产者消费者的伪代码,问,如果队列满了怎么办

一个字符串,找出出现次数最多的字符,建立哈希表

介绍二叉树,介绍B+树,红黑树,用途

了解哪些排序算法,说一下怎么实现的。

快排是什么?时间复杂度多少?

七大排序分别是什么?

二叉树原理?

红黑树是什么?

线段树 B+树?

正式批:字符串出现频率中位数、最长公共子串问题LCS

二叉树

B树(插入/删除过程)

上来大数相乘,我做的眼泪都快流出来了。

考了道算法题,求1-1000有多少个1

两道算法题,一道是一个数分解成两个质数和,问有多少对,比如10,分解成(5,5),(3,7),分解成两对。

算法就问了求链表交点问题

有两个无序的整型数组 如何快速找出它们的交集

(思考了5秒以后就回答了使用Map 然后再和他分析了一下 怎么快速找出元素 如何扩容之类的。)

8bit的数,怎么判断4个1

数据结构哪些地方学的不好,为什么

6. 知道哪些排序算法,时间复杂度

7. 稳定排序?nlogn的稳定排序

二叉树的问题

二叉树的几种遍历方法,如何进行先序遍历?从左还是从右开始遍历?从左开始遍历后如何再i进行遍历?

常用的几种排序?每个排序的时间复杂度和空间复杂度。

有一个3L水的杯子和5L水的杯子,如何倒出4L的水

这个题,,,基本上就是签到题,我是用HashMap优化的,有点取巧了

这个题是腾讯最爱问的智力题,这块我一开始想到二分的方法,但是仔细一想这个方法不可以,然后我就想到分段的方法,第一个瓶子10层10层间隔扔,确定大范围,然后第二个瓶子确定小范围,然后面试官说这个方法还是不对,但是比上一个方法好一点,让我再想想,然后我就很着急就想不出来//最后在吴师兄的推文里面看到了解答

红黑树概念,二叉树遍历 // 红黑树我可以不看了吗

因为上一个问题讲到红黑树了,然后讲了下红黑树的概念,然后问其他的我真的不会了,就问了下二叉树的前,中,后遍历方式

快排的思想 如何优化 时间复杂度

这个也是基本问题,然后讲了下快排的思想,然后优化的方式讲了下中间值取值的优化,然后为什么这样做

大数据排序

给1亿的int类型的数,如何找到最大的100个,这种问题肯定不可能直接排序,先分开存储,然后我的思路是用桶排的思想进行处理,可能我的方法不是最优解。

快排和归并排序的复杂度(快排的最差复杂度)

稳定排序?nlogn 排序哪些是稳定的?// 快排堆排都不稳定,只有归并排序是稳定的

最后算法题,判断一个8bit串只含有4个1,要求比较次数小于遍历。(一如既往的悔恨啊,逼到面试官最后直接爆答案)// 位运算?

说一说快排 // 捋一遍思路

怎么评价一个算法的时间复杂度// 当然o(1)是最好

写快排。// 手推

大数相乘。 // 看看

1、两个字符串s1、s2,字符串里只包含左括号和右括号,要求将两个字符串作合并,最后得到的串能够有正确的左右括号匹配格式,并且合并的串中的字符保持原s1和s2中顺序不变,算出有多少种合并情况。(知道怎么做,没说清楚)//

快排 // 手推

堆排序 //

给两个数组求最长公共子串 // dp

八皇后

概率论题。挺简单的,一套猛推。推着推着数字记错了。结束才想到

给电话区号,最快的方法找到对应的城市(关系已知)

二叉树有几种遍历方式 // 前中后

说一下堆和栈的特点 // 可以说数据结构层面的也可以说一点os层面的

介绍一下队列和栈,它们在数据进出顺序的方面有什么不同点。//

红黑树查找和插入的时间复杂度

反转单词(最小的空间复杂度)// lcof58 双指针实现 从尾部开始向前遍历

算法题:递增序列两数之和,输出乘积最小的两数 // 啥意思,这到底是一个题还是俩题

智力题,100层的建筑,玻璃球会在某个临界楼层摔碎,用两个玻璃球怎么试出来这个临界楼层 // 这个题出现的好频繁,一定要搞懂 // leecode887 k=2 n=100即这种情况 去学一下方法一

C++ 实现一个四则运算,输入是字符串 // leetcode224 基本计算器 227 基本计算器II

最坏情况 100 个数不排序,怎么找到中位数,内存只能装 10 个数 // 使用快排的思想,不停的partition

的查找复杂度// logn

算法:判断AVL树 // 平衡二叉树 lcof55

算法:判断二叉查找树 // BST leetcode98

两个人轮流投掷硬币,规定正面赢,正反面各50%概率,计算先投的人获胜的概率 //

算法题 两数之和 //

智力题 瓶子从100楼往下扔,一共两个瓶子,问从那个楼扔瓶子刚好碎 //

算法题 如何判断一个数是2的次方 如何优化 时间复杂度 // 位运算 判断 n & n-1 是否等于0即可

快排为什么比其他 nlogn 快(常数项)//

将1-100随机放入到长度为100的数组里面,得到的随机数组中不允许有重复数字 //

2、有3000根萝卜,要运到3000千米外,现在有一头驴,它一次可以驼1000根萝卜,然后驴每走1千米,驴哟啊吃掉一根萝卜。问你怎么样运萝卜可以将最多的萝卜运到终点。(算错了,很尴尬)//

3、一群人开舞会,每人头上都戴着一顶帽子。帽子只有黑白两种,黑的至少一种。每个人都能看到其他人的帽子的颜色,却看不到自己的。主持人先让大家看别人头上戴的是什么帽子,然后关灯。如果有人认为自己戴的是黑色的帽子,就拍手。第一次关灯,没有声音。于是再开灯,大家再一看,关灯时候仍然是鸦雀无声。一直到第三次关灯,再有噼噼啪啪的拍手声音响起。问有多少人戴着黑色的帽子。//

递增序列两数之和 // 二分查找

智力题,5位数乘以4后会得到它的反转,5分钟推导这个5位数并给出思路 //

leetcode442
知乎
leetcode-面试题02.01移除重复节点
前中后
Android算法题 给定ViewGroup打印其内所有的View
leetcode144
leetcode19
解法
红黑树
wiki
wiki
https://www.zhihu.com/question/290055193/answer/467894271
leetcode1
leetcode887
leetcode231
知乎
解法
解法
解法
leetcode167
解法
leetcode678 有效的括号字符串
leetcode415 字符串相加