自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

原创 538. 把二叉搜索树转换为累加树

538. 把二叉搜索树转换为累加树Tag TreeDifficulty EasyLink https://leetcode-cn.com/problems/convert-bst-to-greater-tree/二叉搜索树的特点是节点的左子节点的值小于等于它的值,右子节点的值大于等于它的值,现在要使得每个节点加上比它大的所有值。我们知道中序遍历的结果就是把二叉搜索树从小到大排列,那么我们可以从最大的节点开始,不断往前,每次都加上后面节点的值。class Solution { public

2020-09-24 16:33:21 177

原创 37. 解数独

37. 解数独Tag: BackTracingDifficulty HardLink https://leetcode-cn.com/problems/sudoku-solver/思路:class Solution { public void solveSudoku(char[][] board) { // 记录每行1-9的使用情况 第i行0-8分别表示1-9是否被使用 boolean[][] row = new boolean[9][9];

2020-09-16 10:20:13 177

原创 LeetCode每日一题 94. 二叉树的中序遍历

94. 二叉树的中序遍历Tag TreeDifficulty MediumLink https://leetcode-cn.com/problems/binary-tree-inorder-traversal/思路1:递归二叉树的中序遍历的顺序是左-根-右所以使用递归的方式只需要递归遍历root的左子树,然后将根节点加入答案,再遍历右子树即可。class Solution { public List<Integer> inorderTraversal(TreeNode ro

2020-09-14 19:55:29 191

原创 LeetCode每日一题 637. Average of Levels in Binary Tree

637. Average of Levels in Binary TreeTag TreeDifficulty EasyLink https://leetcode-cn.com/problems/average-of-levels-in-binary-tree/思路1 DFS使用深度优先遍历需要维护两个数组,分别是sums用于记录每一层的元素之和,counts用于记录每一层的元素数量。/** * Definition for a binary tree node. * public clas

2020-09-12 19:33:36 175

原创 LeetCode每日一题 216. Combination Sum III

216. Combination Sum IIITag BackTrackingDifficulty MediumLink https://leetcode-cn.com/problems/combination-sum-iii/思路这道题和前面的两道组合数之和类似,只不过增加了对每条路径的元素数量的限制candidates限定为[1,2,3,4,5,6,7,8,9]仿照前面的模板,可以很轻易的写出如下代码class Solution { public List<List&lt

2020-09-12 16:26:57 131

原创 LeetCode每日一题 40. Combination Sum II

40. Combination Sum IITag BackTracingDifficulty MediumLink https://leetcode-cn.com/problems/combination-sum-ii/思路这道题和39题的不同之处在于,数组candidates中有重复元素,题目要求最后不能够有重复的组合。也就是说,本题在39题的基础上增加了去重的要求。我们可以对数组进行排序,重复元素会被聚到一起,也就是说,重复元素一定不是相同连续区域的第一个元素。这是第一个关键步骤。第二

2020-09-10 19:18:27 169

原创 39. Combination Sum

39. Combination SumTag BackTracingDifficulty MediumLink https://leetcode-cn.com/problems/combination-sum/思路这道题与77题n选k类似,只不过多了一个可以重复取数的条件,依然使用深度优先搜索遍历,画图可以使得我们看得更加直观。假设candidates=[2,3,6.7], target=7可以看到[2,2,3]这一组符合条件,还有[7]符合条件。那么就可以写出如下代码。class Sol

2020-09-09 19:23:00 90

原创 77. Combinations

77. CombinationsTag BackTracingDifficulty MediumLink https://leetcode-cn.com/problems/combinations/思路:在一颗树上进行深度优先搜索,重视画图,这样可以使得思路更加清晰。叶子结点的信息体现在从根结点到叶子结点的路径上,因此需要一个表示路径的变量 path,它是一个列表,特别地,path 是一个栈;每一个结点递归地在做同样的事情,区别在于搜索起点,因此需要一个变量 start ,表示在区间 [b

2020-09-08 21:43:32 144

原创 Hexo写作

Hexo写作本文介绍了一些基本的Hexo配置和使用hexo+GitHub写作的流程。1. Hexo基本命令hexo g = hexo generate #生成hexo s = hexo server #启动本地预览hexo d = hexo deploy #远程部署hexo n "文章标题" = hexo new "文章标题" #新建一篇博文2. 整体配置\hexo\_c...

2020-04-15 22:03:49 474

原创 Hexo Permalink简化

Hexo Permalink简化在文档名有中文的时候,因为汉字会被转义,默认的永久链接会非常复杂,具体原因可以看这一篇文章阮一峰 关于url编码有两种方法优化。方法一:自定义首先,在scaffolds的post.md中,加入urlname元素。title: {{ title }}urlname:date: {{ date }}tags:categories:然后,在配置文...

2020-04-07 01:23:55 732

原创 LeetCode每日一题 102. 二叉树的层序遍历

102. 二叉树的层序遍历Tag Tree BFSDifficulty MediumLink 102. 二叉树的层序遍历分析本题要求按层遍历二叉树,也就是说每一层的元素作为一个数组存储到结果中。1. 迭代这道题我觉得迭代的思路比较好理解。从根节点开始,用队列存储每一层的节点,将这些节点的值存到结果中同时取这些节点的左右儿子放到一个新的队列中,然后用新队列更新原队列,再次遍历,不...

2020-04-03 19:47:36 196

原创 LeetCode每日一题 101. 对称二叉树

101. 对称二叉树Tag Tree DFS BFSDifficulty EasyLink 101. 对称二叉树分析使用深度优先搜索来解决这个问题,第一种是递归解法,使用左右指针left, right分别指向左子树与右子树基准情况:两个指针都为空,返回true两个指针只有一个为空,返回false递归过程:判断两个指针当前节点值是否相等判断left指针的右子树与...

2020-04-02 22:10:20 237

原创 LeetCode每日一题 98. 验证二叉搜索树

98. 验证二叉搜索树Tag Tree DFSDifficulty MediumLink 98. 验证二叉搜索树分析二叉搜索树的特征是:节点的左子树只包含小于当前节点的树节点的右子树只包含大于当前节点的树所有左子树和右子树自身也必须是二叉搜索树比较容易想到深度优先搜索的方法,只要分别对左右子树深搜,同时判断大小。但是要注意二叉搜索树的第三个条件,根节点的右子树的左儿子小于根...

2020-04-01 20:13:03 349

原创 LeetCode每日一题 111. 二叉树的最小深度

111. 二叉树的最小深度Tag Tree DFSDifficulty EasyLink https://leetcode-cn.com/problems/minimum-depth-of-binary-tree/分析与求二叉树的最大深度类似,只是要注意特例[1, 2]的深度是2而不是1,因为题目要求是根节点到叶节点的最短距离,也就是是如果根节点的左子树为空或右子树为空的时候,最小深度和...

2020-03-31 20:59:30 199

原创 LeetCode每日一题 104. 二叉树的最大深度

104. 二叉树的最大深度Tag Tree DFSDifficulty EasyLink https://leetcode-cn.com/problems/maximum-depth-of-binary-tree/分析使用深度优先搜索,沿着树的深度遍历树的节点。第一种是递归方法​ 递归调用的参数是通过栈空间传递的,在调用过程中会占用线程的栈资源并且只有走到最后的结束点函数才能依次...

2020-03-31 20:58:44 212

原创 LeetCode每日一题 207. 课程表

207. 课程表Tag DFS BFS GraphDifficulty MediumLink https://leetcode-cn.com/problems/course-schedule/分析由题意,要判断课程表是否一个有向无环图使用深度优先搜索,如果有一条有向边v->w,且w已经出现过,那么就找到了一个环。流程使用标志flags记录每个点i的状态flags[i]...

2020-03-25 19:49:20 206

原创 LeetCode每日一题 329. 矩阵中的最长递增路径

329. 矩阵中的最长递增路径Tag DFS Topological Sort MemorixationDifficulty HardLink https://leetcode-cn.com/problems/longest-increasing-path-in-a-matrix/分析首先想到的是深度优先搜索,即遍历每一个点,找寻其最长递增路径,但是结果超时。注意到1方法会存在...

2020-03-24 19:56:47 191

原创 LeetCode每日一题 76. 最小覆盖子串

76. 最小覆盖子串Tag String Two Pointers Sliding WindowDifficulty HardLink https://leetcode-cn.com/problems/minimum-window-substring/分析有一类题型可以用滑动窗口的框架来解决,这是一种双指针的思想。思路:初始化左右指针left=right=0,区间[left, ri...

2020-03-23 21:25:59 180

原创 LeetCode每日一题 216. 组合总和III

216. 组合总和IIITag Array BacktrackingDifficulty MediumLInk https://leetcode-cn.com/problems/combination-sum-iii/分析回溯+剪枝见代码注释题解class Solution { List<List<Integer>> list = new Array...

2020-03-20 22:05:57 331

原创 LeetCode每日一题 1238.循环码排列

1238. 循环码排列Tag MathDifficulty MediumLink https://leetcode-cn.com/problems/circular-permutation-in-binary-representation/分析根据89题格雷码可以得知二进制与格雷码之间有这样的规律:假设格雷码第n位为G(n), 二进制第n位为B(n)对于n+1位,G(n+1)=B(...

2020-03-10 21:15:14 214

原创 LeetCode每日一题 89. 格雷码

89. 格雷码Tag MathDifficulty MediumLink https://leetcode-cn.com/problems/gray-code/分析格雷码与二进制码之间存在关系:假设格雷码第n位为G(n), 二进制第n位为B(n)对于n+1位,G(n+1)=B(n+1) G(n+1) = B(n+1) G(n+1)=B(n+1)G(n)=B(n+1)XORB(n)...

2020-03-10 20:53:32 156

原创 LeetCode每日一题 217. 重复元素

217. 重复元素Tag: ArrayDifficulty: EasyLink: https://leetcode-cn.com/problems/contains-duplicate/分析方法一:排序如果数组中有重复元素,那么排序后两者应该相邻。class Solution { public boolean containsDuplicate(int[] nums) { ...

2020-03-07 23:35:54 154 1

原创 LeetCode每日一题 189.旋转数组

189. 旋转数组Tag: ArrayDifficulty: EasyLink: https://leetcode-cn.com/problems/rotate-array/分析方法1:暴力对于数组元素的变动,最容易想到的就是暴力。旋转k次,每次将数组整体移动一次题解class Solution { public void rotate(int[] nums, int k)...

2020-03-04 23:46:10 241

原创 洛谷每日一题 P1003 铺地毯

普及练习场 P1003 铺地毯Link: https://www.luogu.com.cn/problem/P1003分析对于每一块地毯,读入左下角的坐标,根据范围得到右上角的坐标。要找到最上面的那一块地毯,只要从后往前遍历即可。题解#include<iostream>using namespace std;int main() { int n; in...

2020-03-03 23:18:21 237

原创 LeetCode每日一题 229. 求众数 II

229. 求众数 IITag: ArrayDifficulty: MediumLink: https://leetcode-cn.com/problems/majority-element-ii/分析要求一个数组中所有超过[n/3](向下取整)的元素,比较容易想到的是用map方法,统计每个不同元素的数量,但是本题要求用**O(1)**的空间复杂度。所以这里需要一个新的方式——摩尔投票法...

2020-03-03 20:32:00 192

原创 LeetCode每日一题 26 删除排序数组中的重复项

26 删除排序数组中的重复项Tag: Array Two pointersDifficulty: Easy分析题目要求不要使用另一个数组分配额外空间,即O(1)的空间复杂度。这里我们使用双指针法给定两个指针i ,j,i为慢指针,j为快指针,i指向当前元素,j指向下一个不与当前重复的元素当nums[i] == nums[j] 时,即出现重复元素,增加j以跳过重复项当nums[i] !...

2020-03-02 23:51:02 129

原创 LeetCode每日一题:264. 丑数 II

264 丑数 IITag: Math Heap Danymic Programming分析方法:动态规划,三指针根据提示我们知道,每一个丑数都可以由它前面的某个丑数乘以2,3,5得到我们需要一个数组nums来存放丑数,三个指针p2,p3,p5在 nums[p2] * 2,nums[p3] * 3 和 nums[p5] * 5 选出最小的数字添加到数组 nums 中,并将该数字对应的因子...

2020-03-01 21:43:26 188

原创 使用Github pages + Hexo 搭建个人博客

Github pages + Hexo 搭建个人博客2019年11月19日,我决定开始写博客,首先要用github pages+hexo搭建一个个人博客,其中的过程我就记录在这里面。准备工作我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ,将会带来全新的写作体验;在创作中心设置你...

2019-11-23 20:06:02 435

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除