自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 剑指Offer刷题笔记 36 java实现

题目:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。答案:按照右->中->左的顺序进行遍历。在遍历的过程中将根节点与排序好的链表连起来,更新头结点。eg:按照右->中->左的顺序,首先遍历16,头结点指向16;然后遍历到14,令14的right指向16,16的left指向14,头结点指向14;然后遍...

2020-02-22 23:48:14 197

原创 LeetCode刷题笔记 155

题目:最小栈计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。push(x) – 将元素 x 推入栈中。pop() – 删除栈顶的元素。top() – 获取栈顶元素。getMin() – 检索栈中的最小元素。示例:MinStack minStack = new MinStack();minStack.push(-2);minStack.push(0)...

2020-02-22 13:26:02 170

原创 LeetCode刷题笔记 152

题目:乘积最大子序列给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数)。示例 1:输入: [2,3,-2,4]输出: 6解释: 子数组 [2,3] 有最大乘积 6。示例 2:输入: [-2,0,-1]输出: 0解释: 结果不能为 2, 因为 [-2,-1] 不是子数组。答案:动态规划和第53题很像,可以一起看。只不过乘积涉及到正负,就会...

2020-02-22 12:11:26 231

原创 LeetCode刷题笔记 148

题目:排序链表在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序。示例 1:输入: 4->2->1->3输出: 1->2->3->4示例 2:输入: -1->5->3->4->0输出: -1->0->3->4->5答案:1.归并排序(递归法)将待排序的序列划分为大小相等(或...

2020-02-21 22:05:07 119

原创 LeetCode刷题笔记 146(涉及到LinkedHashMap)

题目:LDR缓冲机制答案:参考链接:https://leetcode-cn.com/problems/lru-cache/solution/lru-ce-lue-xiang-jie-he-shi-xian-by-labuladong/使用哈希表+双向链表哈希表查找快,但是数据无固定顺序;链表有顺序之分,插入删除快,但是查找慢。所以结合一下,形成一种新的数据结构:哈希链表。定义链表头表示...

2020-02-21 11:56:03 246

原创 LeetCode刷题笔记 141、142(涉及到链表)

题目:环形链表答案:参考链接:https://leetcode-cn.com/problems/linked-list-cycle/solution/huan-xing-lian-biao-by-leetcode/1.哈希表遍历所有结点并在哈希表中存储每个结点的引用(或内存地址)。如果当前结点为空结点 null(即已检测到链表尾部的下一个结点),那么我们已经遍历完整个链表,并且该链表不是环...

2020-02-20 20:18:13 192

原创 LeetCode刷题笔记 139

题目:单词拆分答案:参考链接:https://leetcode-cn.com/problems/word-break/solution/dan-ci-chai-fen-by-leetcode/1.记忆化回溯法检查单词中的每一个前缀,如果在字典中出现过,那么去掉这个前缀后剩余的部分递归调用。public class Solution { public boolean wordBr...

2020-02-20 13:48:24 169

原创 LeetCode刷题笔记 138 / 剑指Offer 35

题目:复制带随机指针的链表给定一个链表,每个节点包含一个额外增加的随机指针,该指针可以指向链表中的任何节点或空节点。要求返回这个链表的 深拷贝。我们用一个由 n 个节点组成的链表来表示输入/输出中的链表。每个节点用一个 [val, random_index] 表示:val:一个表示 Node.val 的整数。random_index:随机指针指向的节点索引(范围从 0 到 n-1);如果...

2020-02-19 19:03:57 181

原创 LeetCode刷题笔记 136

题目:只出现一次的数字给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4答案:1.列表操作如果列表中包含了该数字,则删除,不包含则加入,最后列表中只剩下一个数字即...

2020-02-19 12:41:39 115

原创 LeetCode刷题笔记 128

题目:最长连续序列给定一个未排序的整数数组,找出最长连续序列的长度。要求算法的时间复杂度为 O(n)。示例:输入: [100, 4, 200, 1, 3, 2]输出: 4解释: 最长连续序列是 [1, 2, 3, 4]。它的长度为 4。答案:1.排序将数组排序,再找连续序列的最大长度class Solution { public int longestConsecuti...

2020-02-18 14:57:48 104

原创 LeetCode刷题笔记 124

题目:二叉树中的最大路径和给定一个非空二叉树,返回其最大路径和。本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。示例 1:输入: [1,2,3] 1 / \ 2 3输出: 6示例 2:输入: [-10,9,20,null,null,15,7] -10 / \ ...

2020-02-18 13:08:02 136

原创 LeetCode刷题笔记 121 122 123 188

题目:买卖股票的最佳时机给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 ...

2020-02-17 19:16:58 165

原创 LeetCode刷题笔记 114(涉及到二叉树)

题目:二叉树展开为链表给定一个二叉树,原地将它展开为链表。例如,给定二叉树 1 / \ 2 5 / \ \3 4 6将其展开为:1 \ 2 \ 3 \ 4 \ 5 \ 6答案:1.展开为链表的顺序其实就是二叉树的先序遍历。(1)将原来...

2020-02-17 13:30:49 105

原创 LeetCode刷题笔记 105

题目:从前序与中序遍历序列构造二叉树根据一棵树的前序遍历与中序遍历构造二叉树。注意:你可以假设树中没有重复的元素。例如,给出前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树: 3 / \ 9 20 / \ 15 7答案:递归先序遍历序列中,第一个结点必为根...

2020-02-16 13:59:27 344

原创 LeetCode刷题笔记 104 / 剑指Offer 55 - I(涉及到递归、层次遍历)

题目:二叉树的最大深度给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度 3 。答案:1.递归思路:树的深度等于1+最大的子树的深度clas...

2020-02-16 12:22:31 126

原创 LeetCode刷题笔记 102

题目:二叉树的层次遍历给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。例如:给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层次遍历结果:[[3],[9,20],[15,7]]答案:1.迭代将结点按层次依次放入队列结构中。当队列非空时:(...

2020-02-15 15:12:33 212

原创 LeetCode刷题笔记 101 / 剑指Offer 28

题目:对称二叉树给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \3 4 4 3但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 1 / \ 2 2 \ \ 3 3答案:参考链接:https://lee...

2020-02-15 12:56:03 233

原创 LeetCode刷题笔记 98(涉及到递归、二叉搜索树)

题目:验证二叉搜索树给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。示例1: 输入: 2 / \ 1 3 输出: true示例2: 输入: 5 / \ 1 4 /...

2020-02-14 17:38:18 438

原创 LeetCode刷题笔记 96

题目:不同的二叉搜索树给定一个整数 n,求以 1 … n 为节点组成的二叉搜索树有多少种?示例:输入: 3输出: 5解释:给定 n = 3, 一共有 5 种不同结构的二叉搜索树: 1 3 3 2 1 \ / / / \ \ 3 2 1 1 3 ...

2020-02-14 11:56:33 106

原创 LeetCode刷题笔记 94

题目:二叉树的中序遍历给定一个二叉树,返回它的中序 遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3输出: [1,3,2]进阶: 递归算法很简单,你可以通过迭代算法完成吗?答案:1.递归:/** * Definition for a binary tree node. * public class TreeNode {...

2020-02-13 14:51:31 119

原创 LeetCode刷题笔记 85

题目:最大矩形给定一个仅包含 0 和 1 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积。示例:输入:[[“1”,“0”,“1”,“0”,“0”],[“1”,“0”,“1”,“1”,“1”],[“1”,“1”,“1”,“1”,“1”],[“1”,“0”,“0”,“1”,“0”]]输出: 6答案:参考84题求柱状图中最大的矩形。本题中对每一层都求累计的height...

2020-02-13 14:10:51 353

原创 LeetCode刷题笔记 84

题目:柱状图中最大的矩形给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。求在该柱状图中,能够勾勒出来的矩形的最大面积。以上是柱状图的示例,其中每个柱子的宽度为 1,给定的高度为 [2,1,5,6,2,3]。图中阴影部分为所能勾勒出的最大矩形面积,其面积为 10 个单位。示例:输入: [2,1,5,6,2,3]输出: 10答案:1.暴力法...

2020-02-12 20:14:34 252

原创 LeetCode刷题笔记 79 / 剑指Offer刷题笔记 12(涉及到回溯)

题目:单词搜索给定一个二维网格和一个单词,找出该单词是否存在于网格中。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。示例:board =[[‘A’,‘B’,‘C’,‘E’],[‘S’,‘F’,‘C’,‘S’],[‘A’,‘D’,‘E’,‘E’]]给定 word = “ABCCED”,...

2020-02-12 13:50:58 264

原创 LeetCode刷题笔记 78(涉及到回溯、迭代)java语言

题目:子集给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例:输入: nums = [1,2,3]输出:[[3],[1],[2],[1,2,3],[1,3],[2,3],[1,2],[]]答案:1.回溯法通过画递归树找到规律当指向元素的nums.length时,搜索结束class Solution ...

2020-02-11 21:04:23 181

原创 LeetCode刷题笔记 76(涉及到滑动窗口)

题目:最小覆盖子串答案:参考链接:https://leetcode-cn.com/problems/minimum-window-substring/solution/hua-dong-chuang-kou-suan-fa-tong-yong-si-xiang-by-/https://blog.csdn.net/qq_38595487/article/details/803881001.暴...

2020-02-11 13:34:53 189

原创 LeetCode刷题笔记 75

题目:颜色分类给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。注意:不能使用代码库中的排序函数来解决这道题。示例:输入: [2,0,2,1,1,0]输出: [0,0,1,1,2,2]进阶:一个直观的解决方案是使用计数排序的两趟扫描算法...

2020-02-09 21:20:58 156

原创 LeetCode刷题笔记 72

题目:编辑距离给定两个单词 word1 和 word2,计算出将 word1 转换成 word2 所使用的最少操作数 。你可以对一个单词进行如下三种操作:插入一个字符删除一个字符替换一个字符示例 1:输入: word1 = “horse”, word2 = “ros”输出: 3解释:horse -> rorse (将 ‘h’ 替换为 ‘r’)rorse -> ro...

2020-02-09 13:53:29 398

原创 LeetCode刷题笔记 64

题目:最小路径和给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。示例:输入:[[1,3,1],[1,5,1],[4,2,1]]输出: 7解释: 因为路径 1→3→1→1→1 的总和最小。答案:1.二维动态规划class Solution { public int minP...

2020-02-08 14:14:38 108

原创 LeetCode刷题笔记 62

题目:不同路径答案:参考链接:https://leetcode-cn.com/problems/unique-paths/solution/dong-tai-gui-hua-by-powcai-2/1.递归class Solution { public int uniquePaths(int m, int n) { if(m <= 0 || n <= 0) r...

2020-02-07 19:24:13 156

原创 java Arrays.sort()方法

参考链接:https://www.cnblogs.com/macyzhang/p/9861302.htmlhttps://www.jianshu.com/p/ebf037d54661Arrays.sort(T[] a)是对数组元素按字典序进行升序排列public class Main { public static void main(String[] args){ ...

2020-02-06 20:43:29 247

原创 LeetCode刷题笔记 56

题目:合并区间给出一个区间的集合,请合并所有重叠的区间。示例 1:输入: [[1,3],[2,6],[8,10],[15,18]]输出: [[1,6],[8,10],[15,18]]解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].示例 2:输入: [[1,4],[4,5]]输出: [[1,5]]解释: 区间 [1,4] 和 [4,5] 可被视为重叠区间...

2020-02-06 19:21:25 208

原创 LeetCode刷题笔记 55

题目:跳跃游戏给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个位置。示例 1:输入: [2,3,1,1,4]输出: true解释: 我们可以先跳 1 步,从位置 0 到达 位置 1, 然后再从位置 1 跳 3 步到达最后一个位置。示例 2:输入: [3,2,1,0,4]输出: false解释: 无论...

2020-02-06 12:58:31 140

原创 LeetCode刷题笔记 46(涉及到回溯)

题目:全排列给定一个没有重复数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]参考链接:https://leetcode-cn.com/problems/permutations/solution/hui-su-suan-fa-xiang-jie-by-l...

2020-02-04 15:00:31 139

原创 LeetCode刷题笔记 41

题目:缺失的第一个正数给定一个未排序的整数数组,找出其中没有出现的最小的正整数。示例 1:输入: [1,2,0]输出: 3示例 2:输入: [3,4,-1,1]输出: 2示例 3:输入: [7,8,9,11,12]输出: 1你的算法的时间复杂度应为O(n),并且只能使用常数级别的空间。答案:参考链接:https://leetcode-cn.com/problems/fir...

2020-02-02 12:48:07 227

原创 LeetCode刷题笔记 39(涉及到回溯)

题目:组合总和给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的数字可以无限制重复被选取。说明:所有数字(包括 target)都是正整数。解集不能包含重复的组合。示例 1:输入: candidates = [2,3,6,7], target = 7,所求解集...

2020-02-01 19:56:45 171

原创 LeetCode刷题笔记 33(涉及二分查找)

题目:搜索旋转排序数组假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。你可以假设数组中不存在重复的元素。你的算法时间复杂度必须是 O(log n) 级别。示例 1:输入: nums = [4,5,6,7,...

2020-02-01 17:06:00 123

原创 LeetCode刷题笔记 32

题目:最长有效括号给定一个只包含 ‘(’ 和 ‘)’ 的字符串,找出最长的包含有效括号的子串的长度。示例 1:输入: “(()”输出: 2解释: 最长有效括号子串为 “()”示例 2:输入: “)()())”输出: 4解释: 最长有效括号子串为 “()()”答案1.暴力法(超时)检验所有偶数长度子字符串的有效性class Solution { public int...

2020-01-31 14:42:16 102

原创 算法之回溯

参考链接:https://segmentfault.com/a/1190000018319044?utm_source=tag-newesthttps://www.cnblogs.com/xiaobaidashu/p/10724789.html回溯法是一种系统搜索问题解空间的方法。根据定义来看,要实现回溯,需要两点1搜索,2解空间先看什么是解空间。就是形如数组的一个向量[a1,a2,…...

2020-01-27 14:44:22 289 1

原创 LeetCode刷题笔记 17(涉及到回溯)

题目:给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:“23”输出:[“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce”, “cf”].答案:class Solution { public List<String> let...

2020-01-27 14:42:03 161

原创 IDEA新建maven项目没有src等目录解决方法

1.自己重新下载并配置了maven更改了设置之后,重新创建工程并点击右下角弹出的自动加载及框架配置后即生成了。网上找的其余办法(对我都没有用)1.没有webapp目录转载自:https://www.cnblogs.com/oldzhang1222/p/10429827.html先创建的页面修改路径修改路径如下添加并完善路径\src\main\webapp添加后如图效果如下...

2019-12-05 16:24:51 1440

typora 0.11.18最后的免费版

typora 0.11.18最后的免费版

2022-10-14

空空如也

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

TA关注的人

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