LeetCode
LeetCode
Lumos`
努力努力再努力
展开
-
LeetCode——树:BST
BST目录概述修剪二叉查找树(LeetCode669)寻找二叉查找树的第k个元素(LeetCode230)把二叉查找树每个节点的值都加上比它大的节点的值二叉查找树的最近公共祖先(LeetCode235)二叉树的最近公共祖先(LeetCode236)从有序数组中构建二叉查找树(LeetCode108)根据有序链表构建平衡的二叉查找树(LeetCode109)在二叉查找树中寻找...原创 2020-03-10 10:54:53 · 243 阅读 · 0 评论 -
LeetCode——树:层次遍历、前中后序遍历
LeetCode——树:层次遍历、前中后序遍历目录层次遍历二叉树的层平均值找树左下角的值前中后序遍历概述非递归实现二叉树的前序遍历非递归实现二叉树的中序遍历非递归实现二叉树的后序遍历1. 层次遍历1. 二叉树的层平均值(LeetCode637)概述1. 给定一个非空二叉树, 返回一个由每层节点平均值组成的数组.思路利用广度优先搜索遍历整颗二叉...原创 2020-02-16 11:18:11 · 357 阅读 · 0 评论 -
LeetCode——树:递归
LeetCode——树:递归目录概述树的高度(LeetCode104)平衡树(LeetCode110)两节点的最长路径(LeetCode543)翻转树(LeetCode226)归并两棵树(LeetCode617)判断路径和是否等于一个数(LeetCode112)统计路径和等于一个数的路径数量(LeetCode437)子树(LeetCode572)树的对称(LeetCode...原创 2020-02-15 10:34:43 · 361 阅读 · 0 评论 -
LeetCode——链表
LeetCode——链表目录概述找出两个链表的交点链表反转归并两个有序的链表从有序链表中删除重复节点删除链表的倒数第n个节点交换链表中的相邻节点链表求和回文链表分隔链表链表元素按奇偶聚集0. 概述链表是空节点,或者有一个值和一个指向下一个链表的指针,因此很多链表问题可以用递归来处理1. 找出两个链表的交点概述1. A和B两个链表相交于c1,但不会...原创 2020-02-11 19:57:47 · 340 阅读 · 0 评论 -
LeetCode——数学
LeetCode——数学1. 最大公约数最小公倍数1. 生成素数序列素数分解1. 每一个数都可以分解成素数的乘积思路1. 创建一个n+1大小的boolean数组和值为0的count变量2. 因为素数是从2开始的,所以直接从2开始遍历,如果数组为true,说明不是素数,否则count++3. 然后创建变量j,j=i*i,依次加i遍历,得到不是素数的数,将此位置上的数组设置为...原创 2020-02-06 11:30:50 · 250 阅读 · 0 评论 -
动态规划——区间型
区间型目录概述最长的回文序列1. 概述给定一个序列/字符串,进行一些操作,最后一步会将序列/字符串去头/去尾剩下的会是一个区间[i, j]状态自然定义为f[i][j],表示面对子序列[i, …, j]时的最优性质2. 最长的回文序列1. 题目描述 1. 给定一个字符串S,长度是N,找到它最长的回文子序列的长度 例子:输入:“bbbab”输出:4 (“bbb...原创 2020-01-31 09:49:28 · 375 阅读 · 0 评论 -
动态规划——背包问题
背包问题目录概述背包问题:在n个物品中挑选若干物品装入背包,最多能装多满?假设背包的大小为m,每个物品的大小为A[i]背包问题:给定N个正整数:A0,A1,…An-1,一个正整数target,求有多少种组合加起来是target背包问题:给出一个都是正整数的数组 nums,其中没有重复的数。从中找出所有的和为 target 的组合个数背包问题:有 n 个物品和一个大小为 m 的背包,...原创 2020-01-18 16:23:49 · 932 阅读 · 0 评论 -
动态规划——博弈型
博弈型目录概述硬币排成线1. 概述博弈为两方游戏,一方先下,在一定的规则下依次出招,如果满足一定条件,则一方胜先手:先出招的一方。出招后,先手换人,新的先手面对一个新的局面2. 硬币排成线1. 题目描述有 n 个硬币排成一条线。两个参赛者轮流从右边依次拿走 1 或 2 个硬币,直到没有硬币为止。拿到最后一枚硬币的人获胜。请判定 先手玩家 必胜还是必败?例子:...原创 2020-01-16 10:22:18 · 606 阅读 · 0 评论 -
动态规划——划分型
动态规划——划分型目录划分型动态规划概述最少将n分成几个完全平方数之和求字符串划分回文串的最少次数求最短时间抄写完所有的书1. 划分型动态规划概述给定长度为N的序列或字符串,要求划分成若干段段数不限,或指定K段每一段满足一定的性质2. 最少将n分成几个完全平方数之和1. 题目描述:给定一个正整数n,问最少可以将n分成几个完全平方数之和例子:输入:n=13输...原创 2020-01-07 21:56:42 · 1030 阅读 · 2 评论 -
动态规划——坐标型
矩阵路径目录矩阵的总路径数带阻碍的矩阵总路径数矩阵的最小路径和1. 矩阵的总路径数1. 题目描述给定m行n列的网格,有一个机器人从左上角(0,0)出发,每一步可以向下或者向右走一步,问有多少种不同的方式走到右下角2. 思路确定状态1. 设右下角坐标为(m-1, n-1),那么机器人一定是从(m-1, n-2)或者(m-2, n-1)走过来的2. 那么,如果机器人...原创 2020-01-04 16:38:17 · 413 阅读 · 0 评论 -
LeetCode——动态规划:斐波那契数列
斐波那契数列目录爬楼梯强盗抢劫强盗在唤环形街区抢劫信件错排母牛生产注:具体解析请点击链接进入LeetCode题解区。1. 爬楼梯https://leetcode-cn.com/problems/climbing-stairs/solution/pa-lou-ti-by-leetcode/假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶...原创 2019-12-12 15:59:43 · 280 阅读 · 0 评论 -
动态规划——坐标型&位操作型
动态规划——坐标型&位操作型坐标型动态规划——带阻碍的唯一路径序列型动态规划——油漆房子划分型动态规划——解密方式坐标型动态规划——最长上升连续子序列坐标型动态规划——最小路径和坐标型动态规划——炸弹袭击1. 坐标型动态规划——带阻碍的唯一路径https://www.lintcode.com/problem/unique-paths-ii/description...原创 2019-12-12 11:11:38 · 386 阅读 · 0 评论 -
LeetCode——Backtracking
Backtracking目录Backtracking数字键盘组合IP 地址划分在矩阵中寻找字符串输出二叉树中所有从根到叶子的路径排列含有相同元素求排列组合组合求和含有相同元素的组合求和1-9 数字的组合求和子集含有相同元素求子集分割字符串使得每个部分都是回文数数独N皇后1. BacktrackingBacktracking(回溯)属于 DFS。普通 ...原创 2019-12-08 21:11:49 · 156 阅读 · 0 评论 -
LeetCode——DFS
DFS目录DFS查找最大的连通面积矩阵中的连通分量数目好友关系的连通分量数目填充封闭区域能到达的太平洋和大西洋的区域1. DFS广度优先遍历一层一层遍历,每一层得到的所有新节点,要用队列存储起来以备下一层遍历的时候再遍历。而深度优先搜索在得到一个新节点时立即对新节点进行遍历:从节点 0 出发开始遍历,得到新节点 6 时,立马对新节点 6 进行遍历,得到新节点 4;如果...原创 2019-12-05 14:55:05 · 248 阅读 · 0 评论 -
LeetCode——BFS
BFS目录BFS 介绍计算在网格中从原点到特定点的最短路径长度组成整数的最小平方数数量最短单词路径1. BFS 介绍广度优先搜索一层一层地进行遍历,每层遍历都以上一层遍历的结果作为起点,遍历一个距离能访问到的所有节点。需要注意的是,遍历过的节点不能再次被遍历。第一层:0 -> {6,2,1,5}第二层:6 -> {4}2 -> {}1 -&g...原创 2019-12-04 14:31:38 · 275 阅读 · 0 评论 -
LeetCode——二分查找
二分查找目录二分查找法求开方大于给定元素的最小元素有序数组的 Single Element第一个错误的版本旋转数组的最小数字查找区间1. 二分查找法正常实现public int binarySearch(int[] nums, int key) { int l = 0, h = nums.length - 1; while (l &l...原创 2019-12-03 21:14:29 · 330 阅读 · 0 评论 -
LeetCode——分治
LeetCode类型题之分治目录给表达式加括号不同的二叉搜索树1. 给表达式加括号public List<Integer> diffWaysToCompute(String input) { List<Integer> ways = new ArrayList<Integer>(); for (int i = ...原创 2019-12-02 15:46:41 · 201 阅读 · 0 评论 -
LeetCode——贪心思想
贪心思想分配饼干不重叠的区间个数投飞镖刺破气球根据身高和序号重组队列买卖股票最大的收益买卖股票最大的收益 2种植花朵判断是否为子序列修改一个数成为非递减数组子数组最大的和分隔字符串使同种字符出现在一起1. 分配饼干题目描述:每个孩子都有一个满足度,每个饼干都有一个大小,只有饼干的大小大于等于一个孩子的满足度,该孩子才会获得满足。求解最多可以获得满足的孩子数量。...原创 2019-11-28 15:08:45 · 194 阅读 · 0 评论 -
LeetCode——排序
排序目录快速选择堆桶排序之出现频率最多的k个元素桶排序之按照字符出现次数对字符串排序荷兰国旗问题1. 快速选择用于解 Kth Element 问题,也就是第 k 个元素的问题。可以用快速排序的 partition() 进行实现。需要先打乱数组,否则最坏情况下时间复杂度为 O(N^2 )。public int findKthLargest(int[] nums, int ...原创 2019-11-24 15:13:09 · 152 阅读 · 0 评论 -
LeetCode——双指针
双指针双指针主要用来遍历数组,两个指针指向不同的元素,从而协同完成任务。目录有序数组的 Two Sum两数平方和反转字符串中的元音字符回文字符串归并两个有序数组判断链表是否存在环最长子序列1. 有序数组的 Two Sum题目描述:在有序数组中找出两个数,使它们的和为 target。使用双指针,一个指针指向值较小的元素,一个指针指向值较大的元素。指向较小元素的指针从...原创 2019-11-22 20:32:34 · 328 阅读 · 0 评论