Skip to content

Latest commit

 

History

History
338 lines (308 loc) · 42.4 KB

Java应届生算法突击_目录.md

File metadata and controls

338 lines (308 loc) · 42.4 KB

     • 算法的时间与空间复杂度
     • 链表


   ♦ 链表专题
     • 1.Add Tow Numbers
     • 2.Copy List with Random Pointer
     • 3.Delete Node in a Linked List
     • 4.Insertion Sort List
     • 5.Sort List(重点!).
     • 6.Merge Two Sort Lists
     • 7.Merge k Sorted Lists
     • 8.Intersection of Two Sort Lists
     • 9.Linked List Cycle
     • 10.Linked List Cycle II
     • 11.Move Zeroes

   ♦ 双指针专题
     • 1.Two Sum
     • 2.Two Sum II - Input array is sorted
     • 3.Two Sum III - Data structure design
     • 4.3Sum
     • 5.3Sum Closest
     • 6.3Sum Smaller
     • 7.4Sum
     • 8.Longest SubString Without Repeating Characters(重点)
     • 9.Longest SubString with At Most Two Distinct Characters(重点)
     • 10.Merge Sorted Array
     • 11.Move Zeroes

   ♦ 字符串专题
     • 1.Compare Version Numbers
     • 2.Count and Say
     • 3.Distinct Subsequences
     • 4.Edit Distance
     • 5.One Edit Distance
     • 6.Flip Game
     • 7.Flip Game II
     • 8.Interleaving String
     • 9.Length of Last World
     • 10.Longest Common Prefix
     • 11.Reverse Words in a String
     • 12.Reverse Words in a String II

   ♦ 数学类专题
     • 1.Add Binary--大整数加法!!!
     • 2.Plus One(重点!!)
     • 3.Multiply Strings(重点!)--大整数乘法!
     • 4.Add Digits(重点!!)
     • 5.Best Meeting Point
     • 6.Count Primes(重点!!!)
     • 7.Divide Two Integers(重点!!!)
     • 8.Reverse Intger(重点!!)
     • 9.String to Integer(atoi)(重点!!)
     • 10.Excel Sheet Column Number
     • 11.Excel Sheet Column Title

   ♦ 动态规划专题
     • 1.Climbing Stairs
     • 2.Coin Change
     • 3.House Robber
     • 4.Interleaving String
     • 5.Longest Increasing Subsequence
     • 6.Longest Valid Paraentheses
     • 7.Longest Valid Partitioning(回文分割)
     • 8.Longest Valid Partitioning II
     • 9.Range Sum Query-Immutable(不可改变的)
     • 10.Range Sum Query 2D - Immutable

   ♦ 二分类查找专题
     • 1.Find Minimum in Rotated Sorted Array
     • 2.Find Minimum in Rotated Sorted Array II
     • 3.Find Peak Element
     • 4.Median of Two Sorted Arrays(重点)
     • 5.Search a 2D Matrix
     • 6.Search a 2D Matrix II
     • 7.Search for a Range
     • 8.Search in Rotated Sorted Array
     • 9.Search in Rotated Sorted Array II

   ♦ 哈希表专题
     • 1.Word Pattern.md
     • 2.Valid Anagram.md
     • 3.SubString with Concatenation of 0All Worlds.md
     • 4.Strobogrammatic Number I(堆成数).md
     • 5.Single Number.md
     • 6.Single Number II.md
     • 7.Single Number III.md
     • 8.Palindrome Permutation(回文交换)
     • 9.Maximum Size Subarray Equals k.md
     • 10.Longest Substring Without Repeating Characters(重点)

   ♦ 回溯专题
     • 1.Generate Parentheses(括号)
     • 2.Gray 0Code
     • 3.Letter Combinations of a Phone Number
     • 4.N-Queens
     • 5.N-Queens II
     • 6.Palindrome Partitoning(回文分割)
     • 7.Palindrome Partitoning II
     • 8.Restore IP Addresses

   ♦ 位运算专题
     • 1.Bitwise AND of Numbers Range(求一个范围内所有数字按位与的结果)
     • 2.Maximun Product of Word Lengths(重点!!!)
     • 3.Missing Number
     • 4.Mumber of 1Bits
     • 5.Repeated DNA Sequences(重点!!)
     • 6.Reverse Bits(无符号整数翻转函数实现)--(重点!!!)
     • 7.Single Number
     • 8.Single Number II(重点!!!!)
     • 9.Single Number III


   ♦ 链表(8道)
     • 面试题 6 :从尾到头打印链表
     • 面试题 18_1:在O(1)时间内删除链表节点
     • 面试题 18_2:删除链表中重复的节点
     • 面试题 22:链表中倒数第k个结点
     • 面试题 23:链表中环的入口结点
     • 面试题 24:反转链表
     • 面试题 25:合并两个排序的链表
     • 面试题 35:复杂链表的复制
     • 面试题 52:两个链表的第一个公共结点

   ♦ 二叉树(12道)
     • 面试题 7 :重建二叉树
     • 面试题 26:树的子结构
     • 面试题 27:二叉树的镜像
     • 面试题 32_1:不分从上往下打印二叉树
     • 面试题 32_2:分行从上往下打印二叉树
     • 面试题 32_3:按之字打印二叉树
     • 面试题 34:二叉树中和为某一值的路径
     • 面试题 55_1:二叉树的深度
     • 面试题 55_2:平衡二叉树
     • 面试题 8 :二叉树的下一个结点
     • 面试题 28:对称的二叉树
     • 面试题 37:序列化二叉树

   ♦ 二叉搜索树(3道)
     • 面试题 33:二叉搜索树的后序遍历序列
     • 面试题 36:二叉搜索树与双向链表
     • 面试题 54:二叉搜索树的第k大节点

   ♦ 数组(11道)
     • 面试题 3_1 :找出数组中重复的数字
     • 面试题 3_2 :不修改数组中重复的数字
     • 面试题 4 :二维数组中的查找
     • 面试题 11:旋转数组的最小数字
     • 面试题 21:调整数组顺序使奇数位于偶数前面
     • 面试题 39:数组中出现次数超过一半的数字
     • 面试题 42:连续子数组的最大和
     • 面试题 45:把数组排成最小的数
     • 面试题 51:数组中的逆序对
     • 面试题 53_1:数字在排序数组中出现的次数
     • 面试题 53_2:0~1中缺失的数字
     • 面试题 53_3:数组中数值和小标相等的元素
     • 面试题 56_1:数组中只出现一次的两个数字
     • 面试题 56_2:数组中唯一只出现一次的数字
     • 面试题 59_1:滑动窗口的最大值
     • 面试题 66:构建乘积数组

   ♦ 字符串(8道)
     • 面试题 5 :替换空格
     • 面试题 19 :正则表达式匹配
     • 面试题 20 :表示数值的字符串
     • 面试题 38 :字符串的排列
     • 面试题 48 :最长不含重复字符的子字符串
     • 面试题 50_1:字符串第一个只出现一次的字符
     • 面试题 50_2:字符流第一个只出现一次的字符
     • 面试题 58_1:翻转单词顺序序列
     • 面试题 58_2:左旋转字符串
     • 面试题 46 :把数字翻译成字符串

   ♦ 栈(3道)
     • 面试题 9_1 :用两个栈实现队列
     • 面试题 9_2 :用两个队列实现栈
     • 面试题 30 :包含min函数的栈
     • 面试题 31 :栈的压入、弹出序列
     • 面试题 59_2:队列最大值

   ♦ 递归(4道)
     • 面试题 10_1:求裴波那契数列的第n项
     • 面试题 10_2:青蛙跳台阶问题
     • 面试题 10_3:变态跳台阶

   ♦ 回溯法(2道)
     • 面试题 12:矩阵中的路径
     • 面试题 13:机器人的运动范围

   ♦ 其他(15道)
     • 面试题 15:二进制中1的个数
     • 面试题 16:数值的整数次方
     • 面试题 17 :打印从1到最大的n位数字
     • 面试题 29:顺时针打印矩阵
     • 面试题 40:最小的K个数
     • 面试题 43:从1~n整数中1出现的次数
     • 面试题 44:数字序列中某一位的数字
     • 面试题 47:礼物的最大值
     • 面试题 49:丑数
     • 面试题 57_1:和为S的两个数字
     • 面试题 57_2:和为S的连续正数序列
     • 面试题 60:n个骰子的点数
     • 面试题 61:扑克牌顺子
     • 面试题 62:孩子们的游戏(圆圈中最后剩下的数)
     • 面试题 63:股票最大利润
     • 面试题 64:求1+2+3+…+n
     • 面试题 65:不用加减乘除的加法
     • 面试题 41:数据流中的中位数

     • 001:两数之和
     • 002:两数相加
     • 003:无重复字符的最长子串
     • 004:寻找两个有序数组的中位数
     • 005:最长回文子串
     • 006:Z 字形变换
     • 007:整数反转
     • 008:字符串转换整数 (atoi)
     • 009:回文数
     • 010:正则表达式匹配
     • 011:盛最多水的容器
     • 012:整数转罗马数字
     • 013:罗马数字转整数
     • 014:最长公共前缀
     • 015:三数之和
     • 016:最接近的三数之和
     • 017:电话号码的字母组合>      • 018:四数之和
     • 019:删除链表的倒数第N个节点
     • 020:有效的括号
     • 021:合并两个有序链表
     • 022:括号生成
     • 023:合并K个排序链表
     • 024:两两交换链表中的节点
     • 025:K 个一组翻转链表
     • 026:删除排序数组中的重复项
     • 027:移除元素
     • 028:实现 strStr()
     • 029:两数相除
     • 030:串联所有单词的子串
     • 031:下一个排列
     • 032:最长有效括号
     • 033:搜索旋转排序数组
     • 034:在排序数组中查找元素的第一个和最后一个位置
     • 035:搜索插入位置
     • 036:有效的数独
     • 037:解数独
     • 038:报数
     • 039:组合总和
     • 040:组合总和 II
     • 041:缺失的第一个正数
     • 042:接雨水
     • 043:字符串相乘
     • 044:通配符匹配
     • 045:跳跃游戏 II
     • 046:全排列
     • 047:全排列 II
     • 048:旋转图像
     • 049:字母异位词分组
     • 050:Pow(x, n)
     • 051:N皇后
     • 052:N皇后 II
     • 053:最大子序和
     • 054:螺旋矩阵
     • 055:跳跃游戏
     • 056:合并区间
     • 057:插入区间
     • 058:最后一个单词的长度
     • 059:螺旋矩阵 II
     • 060:第k个排列
     • 061:旋转链表
     • 062:不同路径
     • 063:不同路径 II
     • 064:最小路径和
     • 065:有效数字
     • 066:加一
     • 067:二进制求和
     • 068:文本左右对齐
     • 069:x 的平方根
     • 070:爬楼梯
     • 071:简化路径
     • 072:编辑距离
     • 073:矩阵置零
     • 074:搜索二维矩阵
     • 075:颜色分类
     • 076:最小覆盖子串
     • 077:组合
     • 078:子集
     • 079:单词搜索
     • 080:删除排序数组中的重复项 II
     • 081:搜索旋转排序数组 II
     • 082:删除排序链表中的重复元素 II
     • 083:删除排序链表中的重复元素
     • 084:柱状图中最大的矩形
     • 085:最大矩形
     • 086:分隔链表
     • 087:扰乱字符串
     • 088:合并两个有序数组
     • 089:格雷编码
     • 090:子集 II
     • 091:解码方法
     • 092:反转链表 II
     • 093:复原IP地址
     • 094:二叉树的中序遍历
     • 095:不同的二叉搜索树 II
     • 096:不同的二叉搜索树
     • 097:交错字符串
     • 098:验证二叉搜索树
     • 099:恢复二叉搜索树
     • 100:相同的树


搬运工信息