标签: 剑指offer 第二版 leetcode 题解 java版
题目 | 描述 | 标签 | 实现 |
---|---|---|---|
面试题 39 数组中出现次数超过一半的数字 | 给定一个数组,找到其中出现最多的数字 | hash、投票算法 | MajorityElement |
面试题 40 最小的k个数 | 给定一个数组,找到最小的k个数 | 排序、堆、快排思想 | GetLeastNumbers |
面试题 41 数据流中的中位数 | 可能有很多个数作为输入,求这些数的中位数 | 两个堆 | MedianFinder |
面试题 42 连续子数组的最大和 | 求数组中所有连续子数组的最大值 | dp | MaxSubArray |
面试题 44 数字序列中某一位的数字 | 求对应的位数 | 数学 | FindNthDigit |
面试题 45 把数组排成最小的数 | 数组中所有数字拼接后的值最小 | 排序 | MinNumber |
面试题 46 把数字翻译成字符串 | 有条件的fac函数 | 动态规划、递归 | TranslateNum |
面试题 47 礼物的最大价值 | 二维数组,只能往右走和下走 | 动态规划、空间复杂度优化 | MaxValue |
面试题 48 最长不含重复字符的子字符串 | 不含重复字符的最长子字符串 | hash,双指针 | LengthOfLongestSubstring |
面试题 49 丑数 | 一个数只能被2,3,5整数,找到第n个这样的数 | 堆,dp | NthUglyNumber |
面试题 50 第一个只出现一次的字符 | 找出字符串中只出现一次的字符 | 数组,hash | FirstUniqChar |
面试题 51 数组中的逆序对** | 逆序对:两个数在数组中,前面的数比后面的数大 | 归并排序 | ReversePairs |
面试题 52 两个链表的第一个公共节点 | 两个链表的公共子节点 | 链表,或者hash | GetIntersectionNode |
题目 | 描述 | 标签 | 实现 |
---|---|---|---|
面试题 53-I 在排序数组中查找数字 I | 找到给定数字出现的次数 | 二分 | ArraySearch |
面试题 53-II 0~n-1中缺失的数字 | 找到未出现的那个数 | 二分 | MissingNumber |
面试题 54 二叉搜索树的第k大节点 | 找到二叉树第k大的节点 | 中序遍历 | KthLargest |
面试题 55-I 二叉树的深度 | 二叉树深度 | 递归 | MaxDepth#maxDepth |
面试题 55-II 平衡二叉树 | 二叉树是否平衡 | 递归 | MaxDepth#isBalanced |
面试题 56-I 数组中数字出现的次数 | 数组中出现一次的两个数 | 位运算 | SingleNumbers#singleNumbers |
面试题 56-II 数组中数字出现的次数 | 数组中只有一个数字出现一次,其他出现3次 | 位运算 | SingleNumbers#singleNumbers2 |
面试题 57 和为s的两个数字 | 找出递增数组中和为指定值的两个数组 | 双指针 | TwoSum#twoSum |
面试题 57-II 和为s的连续正数序列 | 和为target的序列,从小到大排序 | 双指针 | TwoSum#findContinuousSequence |
面试题 58-I 翻转单词顺序 | 反转单词 | 字符串遍历 | ReverseWords#reverseWords |
面试题 58-II 左旋转字符串 | 反转字符串 | 字符串 | ReverseWords#reverseLeftWords |
面试题 59-I 滑动窗口的最大值 | 数组中一次找到给定长度的子数组的最大值 | 优先级队列,单调队列 | MaxSlidingWindow |
面试题 59-II 队列的最大值 | 实现队列,求最大值 | 优先级队列,单调队列 | MaxQueue,MaxQueue2 |
面试题 61 扑克牌中的顺子 | 求poker中的顺子 | 遍历 | Straight |
面试题 62 圆圈中最后剩下的数字 | 约瑟夫问题 | 迭代、递推 | LastRemaining |
面试题 63 股票的最大利润 | 找到最小值和最大值 | 遍历 | MaxProfit |
面试题 64 求1+2+…+n | 等差数列求和 | 递归 | SumNums |
面试题 65 不用加减乘除做加法 | 加法 | 位运算 | TwoAdd |
面试题 66 构建乘积数组 | 数组的乘法 | 前缀和 | ConstructArr |
题目 | 描述 | 标签 | 实现 |
---|---|---|---|
面试题 67 把字符串转换成整数 | 字符串转化为整数 | 边界考虑 | StrToInt |
面试题 68-I 二叉搜索树的最近公共祖先 | 查找最近公共祖先 | 二叉树 | LowestCommonAncestor#lowestCommonAncestorForBST |
面试题 68-II 二叉树的最近公共祖先 | 查找最近公共祖先 | 二叉树 | LowestCommonAncestor#lowestCommonAncestorForCommonTree |