程序员代码面试指南题单

注:本题单上的题目一般不会做详细分析,主要是记录给自己看的,想知道为什么可以去买左神的书,讲的非常详细!

第一章:栈和队列

  1. 设计一个有 getMin 功能的栈:链接
  2. 由 2 个栈组成的队列:略
  3. 如何仅用递归函数和栈操作逆序一个栈:略
  4. 猫狗队列:略
  5. 用一个栈实现另一个栈的排序:略
  6. 用栈来求解汉诺塔问题:略
  7. 生成窗口最大值数组:链接
  8. 单调栈结构:链接
  9. 求最大子矩阵的大小:链接
  10. 最大值减去最小值小于或等于 num 的子数组数量:链接
  11. 可见山峰对数量:链接链接

第二章:链表问题

  1. 打印两个有序列表的公共部分:略
  2. 在单链表和双链表中删除倒数第 k 个节点:略
  3. 删除链表中间节点和 a/b 处的节点:略
  4. 反转单向和双向链表:略
  5. 反转部分单向链表:略
  6. 环形单链表的约瑟夫问题:链接
  7. 判断一个链表是否为回文结构:链接
  8. 将单向链表按某值划分为左边小,中间相等,右边大的形式:链接
  9. 复制带随机指针的链表:链接
  10. 两个单链表生成相加链表:略
  11. 两个链表相交的一系列问题:链接
  12. 将单链表的每 K 个节点之间逆序:链接
  13. 删除无序单链表中值重复出现的节点:略
  14. 在单链表中删除指定值的节点:略
  15. 将搜索二叉树转换成双向链表:略(要LeetCode会员)以后补
  16. 单链表的选择排序:略
  17. 一种怪异的节点删除方式:略
  18. 向有序的环形单链表中插入新节点:略
  19. 合并两个有序的单链表:略
  20. 按照左右半区的方式重新组合单链表:略

第三章:二叉树问题

  1.  分别用递归和非递归方式实现二叉树先序,中序和后序遍历:链接
  2. 打印二叉树边界节点:链接
  3. 如何较为直观地打印二叉树:略
  4. 二叉树的序列化和反序列化:略
  5. 遍历二叉树的神级方法:链接
  6. 在二叉树中找到累加和为指定值的最长路径长度:链接
  7. 找到二叉树中的最大二叉搜索子树:链接
  8. 找到二叉树中符合搜索二叉树条件的最大拓扑结构:链接
  9. 二叉树的按层打印与 ZigZag 打印:略
  10. 调整搜索二叉树的两个错误的节点:没有找到相关的题
  11. 判断 t1 树是否包含 t2 树全部的拓扑结构:略
  12. 判断 t1 树中是否含有与 t2 树拓扑结构完全相同的子树:链接
  13. 判断二叉树是否为平衡二叉树:略
  14. 根据后序数组重建搜索二叉树:略
  15. 判断一颗二叉树是否是搜索二叉树和完全二叉树:略
  16. 通过有序数组生成平衡搜索二叉树:略
  17. 在二叉树中找到一个节点的后继节点:链接
  18. 在二叉树中找到两个节点的最近公共祖先:链接链接
  19. Tarjan 算法与并查集解决二叉树节点间最近公共祖先的批量查询问题:链接
  20. 二叉树节点间的最大距离问题:略
  21. 派队的最大快乐值:链接
  22. 通过先序和中序数组生成后续数组:略
  23. 统计和生成所有不同的二叉树:链接
  24. 统计完全二叉树的节点数:略

第四章:递归和动态规划

  1. 斐波那契数列问题的递归和动态规划:链接链接
  2. 矩阵的最小路径和:略
  3. 换钱的最少货币数:链接
  4. 机器人达到指定位置的方法数:链接
  5. 换钱的方法数:链接
  6. 打气球的最大分数:链接
  7. 最长递增子序列:链接
  8. 信封嵌套问题:链接
  9. 汉诺塔问题:链接链接
  10. 最长公共子序列问题:链接
  11. 最长公共子串问题:链接
  12. 子数组异或和为0的最多划分:链接
  13. 最小编辑代价:链接
  14. 字符串的交错组成:链接
  15. 龙与地下城游戏:链接
  16. 数字字符串转换为字母组合的种数:链接
  17. 表达式得到期望结果的组成种数:链接
  18. 排成一条线的纸牌博弈问题:链接
  19. 跳跃游戏:链接
  20. 数组中的最长连续序列:链接
  21. N 皇后问题:链接

第五章:字符串问题

  1. 判断两个字符串是否互为变形词:略
  2. 判断两个字符串是否互为旋转词:略
  3. 将整数数字字符串转为整数值:链接
  4. 字符串的统计字符串:略
  5. 判断字符数组中是否所有字符都只出现过一次:略
  6. 在有序但有空的数组中查找字符串:略
  7. 字符串的调整与替换:略
  8. 翻转字符串:略
  9. 完美洗牌问题:链接链接
  10. 删除多余字符得到字典序最小的字符串:略
  11. 数组中两个字符串的最小距离:略
  12. 字符串的转换路径问题:链接
  13. 添加最少的字符使字符串整体都是回文字符串:链接链接
  14. 括号字符串的有效性和最长有效长度:链接
  15. 公式字符串求值:链接
  16. 0 左边必有 1 的二进制字符串数量:略
  17. 拼接所有字符串产生字典序最小的字符串:链接
  18. 找到字符串的最长无重复字符子串:略
  19. 找到指定的新类型字符:链接(查无此题)
  20. 旋变字符串问题:链接
  21. 最小包含子串长度:链接(查无此题)
  22. 回文最少分割数:链接
  23. 字符串匹配问题:链接
  24. 字典树(前缀树)的实现:链接
  25. 子数组最大异或和:链接

第六章:大数据和空间限制

  1. 认识布隆过滤器:略
  2. 只用2GB内存在20亿个整数中找到出现次数最多的数:略
  3. 40亿个非负整数中找到未出现的数:略
  4. 找到100亿个URL中重复的URL及搜索词汇的Top k问题:略
  5. 40亿个非负整数中找到出现两次的数和所有数的中位数:略
  6. 一致性哈希算法的基本原理:略
  7. 岛问题:略

第七章:位运算

  1. 不用额外的变量交换两个整数的值:略
  2. 不做任何比较判断找出两个数中较大的数:略(这两章题目基本都没有OJ的,只能看书)
  3. 只用位运算不用算术运算实现整数的加减乘除运算:略
  4. 整数的二进制数表达中有多少个1:略
  5. 在其他数都出现偶数次的数组中找到出现奇数次的数:链接
  6. 在其他数都出现k次的数组中找到出现1次的数:链接

第八章:数组和矩阵问题

  1. 转圈打印矩阵:略
  2. 将正方形矩阵顺时针旋转90度:略
  3. "之"字形打印矩阵:略
  4. 找到无序数组中最小的k个数:链接
  5. 需要排序的最短子数组长度:链接
  6. 在数组中找出出现次数大于N/K的数:链接链接
  7. 在行列都排好序的矩阵中找指定数:链接
  8. 最长可整合子数组的长度:略
  9. 不重复打印排序数组中相加和为给定值的所有二元组和三元组:略
  10. 未排序正数数组中累加和为给定值的最长子数组长度:略(双指针)
  11. 未排序整数数组中累加和为给定值的最长子数组长度:链接
  12. 未排序整数数组中累加和小于等于给定值的最长子数组长度:链接
  13. 计算数组的小和:链接
  14. 自然数数组的排序:略
  15. 奇数下标都是奇数或者偶数下标都是偶数:略
  16. 子数组最大累加和问题:链接
  17. 子矩阵最大累加和问题:链接
  18. 在数组中找到一个局部最小的位置:链接
  19. 数组中子数组的最大累乘积:链接
  20. 打印N个数组整体最大的Top K:链接
  21. 边界都是1的最大正方形大小:链接
  22. 不包含本位置值的累乘数组:略
  23. 数组的partition调整:略
  24. 求最短通路值:
  25. 数组中未出现的最小正整数:
  26. 数组排序之后相邻数的最大差值:
  27. 做项目的最大收益问题:
  28. 分金条的最小花费:
  29. 大楼轮廓问题:
  30. 加油站良好出发点问题:
  31. 容器盛水问题:

第九章:其他题目

  1. 从5随机到7随机及其扩展:
  2. 一行代码求两个数的最大公约数:略
原文地址:https://www.cnblogs.com/zaq19970105/p/11337927.html