leetcode探索中级算法

leetcode探索中级答案汇总:

https://leetcode-cn.com/explore/interview/card/top-interview-questions-medium/

1)数组和字符串:

leetcode 15 三数之和(medium)排序+双指针

leetcode73 矩阵置零 (medium) 空间节省技巧

leetcode 49 字母异位词分组(medium)排序+哈希

leetcode 3 无重复字符的最长子串(medium) DP

leetcode5 最长回文子串(medium)DP

leetcode334 递增的三元子序列(meidum)双指针

 

2)链表:

leetcode 2 两数相加(medium)链表

leetcode 160相交链表 (easy)哈希、链表、双指针

leetcode 328 奇偶链表 (easy)双指针

3)树和图:

3.1)二叉树的后序遍历迭代法较为困难,使用space O(1)的马拉车算法也并不容易,都属于hard问题;

leetcode 102二叉树的层序遍历 (medium) 迭代、BFS

leetcode 144二叉树的前序遍历 (medium) 迭代、递归、DFS

leetcode 94二叉树的中序遍历 (medium) 迭代、递归、DFS

3.2)二叉树性质相关;

leetcode 103二叉树的锯齿形层次遍历 (medium)迭代、栈、BFS

leetcode 105从前序与中序遍历序列构造二叉树 (medium)递归、遍历

leetcode 116填充每个节点的下一个右侧节点指针 (medium)迭代遍历、BFS

3.3)关于二叉搜索树,一般是二叉树的遍历方法+二叉搜索树的性质;

leetcode 230二叉搜索树中第k小的元素  (medium)BST性质、迭代、递归、DFS

3.4)关于图的问题一般使用一般性的DFS,但有的问题加上并查集方法会极大的简化问题;

leetcode 200岛屿的个数 (medium) 并查集,DFS

4)回溯算法

4.1)这三个题目都为全部排列的问题,每次必定排列一个元素

leetcode 17电话号码的数字组合(medium)DFS,递归,回溯

leetcode 22括号生成(medium)DFS,递归,回溯

leetcode 46. 全排列(medium)DFS,递归,回溯

leetcode 51 N皇后问题 (hard)DFS,递归,回溯

4.2)前三个题目每次都会选择排列一个元素,而78问题子集第一次不push第二次push元素,因此得到一个序列的所有子集,子集每次两个分支因此总共O(2^n)

leetcode 78子集 (medium)DFS,递归,回溯,不一定每次push

4.3)图搜索

leetcode 79 单词搜索(medium)DFS、回溯、剪枝

4.4)全排列的另一种解法:

leetcode 31下一个排列 (medium)

5)排序和搜索

leetcode 75颜色分类(medium)计数排序

leetcode 347前k个高频元素(medium)哈希map、小顶堆

leetcode 215 第K个最大的元素(medium)小顶堆

leetcode 34在排序数组中查找元素的第一个和最后一个位置(medium)二分查找(lower_bound)

leetcode 56区间合并(medium)快速排序

leetcode 33搜索旋转排序数组 (medium)二分查找

6)动态规划

leetcode 55 跳跃游戏 (medium)dp[i]=max(dp[i-1],nums[i]+i)贪心

leetcode 62. 不同路径 (medium)dp[i][j]=dp[i][j-1]+dp[i-1][j];

leetcode 322. 零钱兑换 (medium)dp[i]=min(dp[i],1+dp[i-coins[j]])

leetcode 300. 最长上升子序列 (medium)if(j<i&&nums[j]<nums[i]) dp[i]=max(dp[i],dp[j]+1)、二分查找

7)设计问题

leetcode 297二叉树的序列化与反序列化 (hard)层序遍历、迭代;先序遍历、递归

8)数学问题

leetcode 202 快乐数(easy)

leetcode172 阶乘后的零 (easy)

leetcode171 Excel列表序列号(easy)

leetcode 50. Pow(x, n) (medium)分治法

leetcode 69. x 的平方根(easy)牛顿法、二分法

leetcode 29两数相除(medium)位运算、数学

leetcode 166分数到小数(medium)位运算、数学

 9)其他类型

leetcode 371两整数之和(easy)位运算

leetcode 169求众数(easy)摩尔投票、stack

leetcode 150 逆波兰表达式求值(medium)stack

leetcode 621 任务调度器 Task Scheduler(medium)Greedy

 

 

 

posted @ 2019-05-23 21:28  Joel_Wang  阅读(800)  评论(0编辑  收藏  举报