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

leetcode探索中级算法的更多相关文章

  1. LeetCode探索初级算法 - 动态规划

    LeetCode探索初级算法 - 动态规划 今天在LeetCode上做了几个简单的动态规划的题目,也算是对动态规划有个基本的了解了.现在对动态规划这个算法做一个简单的总结. 什么是动态规划 动态规划英 ...

  2. leetcode探索高级算法

    C++版 数组和字符串 正文 链表: 正文 树与图: 树: leetcode236. 二叉树的最近公共祖先 递归(先序) leetcode124二叉树最大路径和 递归 图: leetcode 547朋 ...

  3. FreeCodeCamp 中级算法(个人向)

    freecodecamp 中级算法地址戳这里 Sum All Numbers in a Range 我们会传递给你一个包含两个数字的数组.返回这两个数字和它们之间所有数字的和. function su ...

  4. 72【leetcode】经典算法- Lowest Common Ancestor of a Binary Search Tree(lct of bst)

    题目描述: 一个二叉搜索树,给定两个节点a,b,求最小的公共祖先 _______6______ / \ ___2__ ___8__ / \ / \ 0 _4 7 9 / \ 3 5 例如: 2,8 - ...

  5. FCC中级算法(上)

    在学习FCC中级算法这一块,自己遇到了很多问题,通过RSA也慢慢把问题解决了,发现每一个问题都会有很多的解决思路,因此把自己想到的一些思路记录到这里. 1. Sum All Numbers in a ...

  6. 用Javascript方式实现LeetCode中的算法(更新中)

    前一段时间抽空去参加面试,面试官一开始让我做一道题,他看完之后,让我回答一下这个题的时间复杂度并优化一下,当时的我虽然明白什么是时间复杂度,但不知道是怎么计算的,一开局出师不利,然后没然后了,有一次我 ...

  7. FCC编程题之中级算法篇(下)

    介绍 本篇是"FCC编程题之中级算法篇"系列的最后一篇 这期完结后,下期开始写高级算法,每篇一题 目录 1. Smallest Common Multiple 2. Finders ...

  8. FCC编程题之中级算法篇(中)

    介绍 接着上次的中级算法题 目录 1. Missing letters 2. Boo who 3. Sorted Union 4. Convert HTML Entities 5. Spinal Ta ...

  9. FCC编程题之中级算法篇(上)

    介绍 FCC: 全称为freeCodeCamp,是一个非盈利性的.面向全世界的编程练习网站.这次的算法题来源于FCC的中级算法题. FCC中级算法篇共分为(上).(中).(下)三篇.每篇各介绍7道算法 ...

随机推荐

  1. mysql的锁机制,以及乐观锁,悲观锁,以及热点账户余额问题

    mysql的简单锁机制. myisam 1.只支持表级锁,所以经常更新的表结构不适宜用. 2.select也会产生锁表 innodb 1.支持事务,行级锁,表级锁,执行行级锁的前提是sql语句的索引有 ...

  2. sourceforge.net

    https://sourceforge.net/ SourceForge.net,又称SF.net,是开源软件开发者进行开发管理的集中式场所. SourceForge.net由VA Software提 ...

  3. 03:Java基础语法(二)

    Java基础语法 Java运算符 算术运算符 运算符是一种特殊的符号,用以表示数据的运算.赋值和比较等.1.操作数:参与运算的数据 称为操作数.2.表达式:运算符和操作数的整体 称为表达式.单独的一个 ...

  4. Linux Shell Web超级终端工具shellinabox

    Shell是Linux内核应用程序,是指“为使用者提供操作界面”的软件,也是命令解析器,它类似于Windows操作系统DOS下的cmd.exe应用程序.它接收用户命令,然后调用相应的应用程序,用户一般 ...

  5. for(auto count:counts)

    c++中for(auto count : counts) 这是C++11中的语法,即:Range-based for loop.其中counts应满足:begin(counts), end(count ...

  6. 实际应用脚本备份1——Ubuntu下应用升级脚本与执行方法

    程序自动更新脚本,命名为makefile: build:run run: killall java /webapps/‘应用目录名’/ /webapps/ ‘应用目录名’/ cd /opt/apach ...

  7. sql 180. 连续出现的数字

    编写一个 SQL 查询,查找所有至少连续出现三次的数字. +----+-----+| Id | Num |+----+-----+| 1 | 1 || 2 | 1 || 3 | 1 || 4 | 2 ...

  8. VMware 虚拟机下载与安装

    虚拟机下载 VMware官网地址:https://www.vmware.com/ 进行官网后,点击左边的下载图标,然后 根据操作系统选择合适的产品,在这里以Windows系统为例,点击转至下载,如下图 ...

  9. vue基本语法 JS补充

    目录 一.VUE框架入门 1. vue框架的优势 二.VUE框架的基本使用 1. vue的引用 2. vue的基本语法结构 2. 插值表达式 3. 文本指令 (1)v-text (2)v-html ( ...

  10. BSGS 扩展大步小步法解决离散对数问题 (BZOJ 3239: Discrete Logging// 2480: Spoj3105 Mod)

    我先转为敬? orz% miskcoo 贴板子 BZOJ 3239: Discrete Logging//2480: Spoj3105 Mod(两道题输入不同,我这里只贴了3239的代码) CODE ...