自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java从入门到放弃系列

Java从入门到放弃系列——本文详细讲了Java快速入门的精髓,也总结了自己在学习过程中的收获,希望对正在学习Java的伙伴们有所帮助!

2020-07-26 12:44:22 1396 2

原创 分享各大OJ平台,干货满满

以下是各大OJ平台,找到适合自己的才能达到事半功倍的效果,白嫖!1.浙江大学 Online Judge(ZOJ)链接:http://acm.zju.edu.cn国内最早也是最有名气的OJ,有很多高手在上面做题。特点是数据比较刁钻,经常会有你想不到的边界数据,很能考验思维的全面性。2.北京大学 Online Judge(POJ)链接:http://acm.pku.edu.cn/JudgeOnline/建立较晚,但题目加得很快,现在题数和ZOJ不相上下,特点是举行在线比赛比较多,数据比ZOJ上的要弱

2020-06-15 17:51:46 5468

原创 LeetCode:16. 最接近的三数之和

给你一个长度为 n 的整数数组 nums 和 一个目标值 target。请你从 nums 中选出三个整数,使它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在恰好一个解。

2022-09-03 11:23:07 315 1

原创 LeetCode:257. 二叉树的所有路径

给你一个二叉树的根节点 root ,按,返回所有从根节点到叶子节点的路径。是指没有子节点的节点。

2022-09-02 16:35:28 282

原创 LeetCode:227. 基本计算器 II

给你一个字符串表达式 s ,请你实现一个基本计算器来计算并返回它的值。整数除法仅保留整数部分。你可以假设给定的表达式总是有效的。所有中间结果将在 [-231, 231 - 1] 的范围内。:不允许使用任何将字符串作为数学表达式计算的内置函数,比如 eval()。

2022-09-02 13:36:41 302

原创 LeetCode:5. 最长回文子串

给你一个字符串 s,找到 s 中最长的回文子串。

2022-09-02 11:04:19 164

原创 LeetCode:71. 简化路径

给你一个字符串 path ,表示指向某一文件或目录的 Unix 风格(以 ‘/’ 开头),请你将其转化为更加简洁的规范路径。在 Unix 风格的文件系统中,一个点(.)表示当前目录本身;此外,两个点 (…) 表示将目录切换到上一级(指向父目录);两者都可以是复杂相对路径的组成部分。任意多个连续的斜杠(即,‘//’)都被视为单个斜杠 ‘/’。对于此问题,任何其他格式的点(例如,‘…’)均被视为文件/目录名称。请注意,返回的。

2022-08-24 20:15:24 155

原创 LeetCode:647. 回文子串

给你一个字符串s,请你统计并返回这个字符串中的数目。是正着读和倒过来读一样的字符串。是字符串中的由连续字符组成的一个序列。具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。###解题思路1.首先定义一个变量count来计算回文子串的个数2.然后使用双指针遍历出所有的子串(分别按顺序和逆序累加字符串),然后判断两个子串是否相等,若相等(即为回文子串)则count++3.最后返回count即可。......

2022-07-28 21:22:34 95

原创 LeetCode:204. 计数质数

给定整数n,返回所有小于非负整数n的质数的数量。#解法一(常规)###解题思路1.首先定义一个变量count来累计质数的个数和一个函数来判断是否是质数2.从2到n-1逐个遍历判断是否为质数,若是则count++,最后返回count即可。...

2022-07-28 20:41:29 402

原创 LeetCode:剑指 Offer 42. 连续子数组的最大和

输入一个整型数组,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。示例1:提示:1.首先定义dp数组表示以当前元素做结尾的最大子序列和,然后遍历nums数组求每个dp元素值,最后返回最大值即可2.状态转移方程:dp[i] = Math.max(nums[i], dp[i - 1] + nums[i])...

2022-06-23 10:26:41 126

原创 LeetCode:162. 寻找峰值

峰值元素是指其值严格大于左右相邻值的元素。给你一个整数数组 nums,找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回 任何一个峰值 所在位置即可。你可以假设 nums[-1] = nums[n] = -∞ 。你必须实现时间复杂度为 O(log n) 的算法来解决此问题。示例 1:示例 2:提示:1.首先找出最大的元素,然后返回其索引即可2.解释:为什么最大值即答案?...

2022-06-16 17:41:02 221 1

原创 LeetCode:124. 二叉树中的最大路径和

路径 被定义为一条从树中任意节点出发,沿父节点-子节点连接,达到任意节点的序列。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点,且不一定经过根节点。路径和 是路径中各节点值的总和。给你一个二叉树的根节点 root ,返回其 最大路径和 。示例 1:示例 2:提示:1.首先遍历左右子树的深度,当前节点往下走的最大值分三种情况:...

2022-06-16 16:37:16 163

原创 LeetCode:387. 字符串中的第一个唯一字符

给定一个字符串 s ,找到 它的第一个不重复的字符,并返回它的索引 。如果不存在,则返回 -1 。示例 1:示例 2:示例 3:提示:1.首先用哈希表统计每个字母出现的次数2.然后遍历字符串,如果发现字符只出现一次,直接返回对应的下标,否则循环终止之后返回-1...

2022-06-16 14:53:55 118

原创 LeetCode:剑指 Offer 04. 二维数组中的查找

在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。示例:现有矩阵 matrix 如下:给定 target = 5,返回 true。给定 target = 20,返回 false。限制:0 ...

2022-06-16 11:20:47 106

原创 LeetCode:剑指 Offer 48. 最长不含重复字符的子字符串

请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。示例 1:示例 2:示例 3:提示:注意:本题与主站 3 题相同:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/1.首先定义左指针,新建一个map来存放每个字符和它的索引值2.然后遍历右指针,若字符已出现过,则左指针右移3.最后根据左右指针的位置来不断取不含重复字符的子字符串的最大值...

2022-06-10 18:00:32 95

原创 LeetCode:214. 最短回文串

给定一个字符串 s,你可以通过在字符串前面添加字符将其转换为回文串。找到并返回可以用这种方式转换的最短回文串。示例 1:示例 2:提示:

2022-06-10 15:38:16 225

原创 LeetCode:34. 在排序数组中查找元素的第一个和最后一个位置

给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1]。进阶:示例 1:示例 2:示例 3:提示:1.首先判断数组非空且存在此元素,然后用indexOf和lastIndexOf方法来查找元素的第一个和最后一个位置...

2022-06-07 11:50:33 92

原创 LeetCode:836. 矩形重叠

矩形以列表 [x1, y1, x2, y2] 的形式表示,其中 (x1, y1) 为左下角的坐标,(x2, y2) 是右上角的坐标。矩形的上下边平行于 x 轴,左右边平行于 y 轴。如果相交的面积为 正 ,则称两矩形重叠。需要明确的是,只在角或边接触的两个矩形不构成重叠。给出两个矩形 rec1 和 rec2 。如果它们重叠,返回 true;否则,返回 false 。示例 1:示例 2:示例 3:提示:rect1.length == 4rect2.length == 4-10^9 ......

2022-06-07 10:02:22 152

转载 LeetCode:26. 删除有序数组中的重复项

给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。由于在某些语言中不能改变数组的长度,所以必须将结果放在数组nums的第一部分。更规范地说,如果在删除重复项之后有 k 个元素,那么 nums 的前 k 个元素应该保存最终结果。将最终结果插入 nums 的前 k 个位置后返回 k 。不要使用额外的空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。判题标准:系统会用下面的代码来

2022-06-06 15:23:52 73

原创 LeetCode:剑指 Offer 03. 数组中重复的数字

找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:限制:1.首先对数组进行排序,然后遍历数组,如果出现相邻元素相等,则返回即可

2022-06-02 16:32:20 95

原创 LeetCode:221. 最大正方形

在一个由 ‘0’ 和 ‘1’ 组成的二维矩阵内,找到只包含 ‘1’ 的最大正方形,并返回其面积。示例 1:输入:matrix = [["1","0","1","0","0"],["1","0","1","1","1"],["1","1","1","1","1"],["1","0","0","1","0"]]输出:4示例 2:输入:matrix = [["0","1"],["1","0"]]输出:1示例 3:输入:matrix = [["0"]]输出:0提示:m == mat

2022-05-30 11:16:13 103

原创 LeetCode:498. 对角线遍历

给你一个大小为 m x n 的矩阵 mat ,请以对角线遍历的顺序,用一个数组返回这个矩阵中的所有元素。示例 1:输入:mat = [[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,4,7,5,3,6,8,9]示例 2:输入:mat = [[1,2],[3,4]]输出:[1,2,3,4]提示:m == mat.lengthn == mat[i].length1 <= m, n <= 10^41 <= m * n <= 10^4-10^5

2022-05-27 12:06:28 174

原创 LeetCode:236. 二叉树的最近公共祖先

给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”示例 1:输入:root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 1输出:3解释:节点 5 和节点 1 的最近公共祖先是节点 3 。示例 2:输入:root = [3,5,1,6,2,0,8,null

2022-05-27 11:05:57 72

原创 LeetCode:41. 缺失的第一个正数

给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。示例 1:输入:nums = [1,2,0]输出:3示例 2:输入:nums = [3,4,-1,1]输出:2示例 3:输入:nums = [7,8,9,11,12]输出:1提示:1 <= nums.length <= 5 * 10^5-2^31 <= nums[i] <= 2^31 - 1解题思路1

2022-05-25 16:57:53 86

原创 LeetCode:39. 组合总和

给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。candidates 中的 同一个 数字可以 无限制重复被选取 。如果至少一个数字的被选数量不同,则两种组合是不同的。对于给定的输入,保证和为 target 的不同组合数少于 150 个。示例 1:输入:candidates = [2,3,6,7], target = 7输

2022-05-25 11:35:18 120

原创 LeetCode:394. 字符串解码

给定一个经过编码的字符串,返回它解码后的字符串。编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数 k ,例如不会出现像 3a 或 2[4] 的输入。示例 1:输入:s = "3[a]2[bc]"输出:"aaabcbc"示例 2:输入:s =

2022-05-24 11:09:10 95

原创 LeetCode:673. 最长递增子序列的个数

给定一个未排序的整数数组 nums , 返回最长递增子序列的个数 。注意 这个数列必须是 严格 递增的。示例 1:输入: [1,3,5,4,7]输出: 2解释: 有两个最长递增子序列,分别是 [1, 3, 4, 7] 和[1, 3, 5, 7]。示例 2:输入: [2,2,2,2,2]输出: 5解释: 最长递增子序列的长度是1,并且存在5个子序列的长度为1,因此输出5。提示:1 <= nums.length <= 2000-10^6 <= nums[i] &l

2022-05-24 10:08:31 133

原创 LeetCode:24. 两两交换链表中的节点

给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。示例 1:输入:head = [1,2,3,4]输出:[2,1,4,3]示例 2:输入:head = []输出:[]示例 3:输入:head = [1]输出:[1]提示:链表中节点的数目在范围 [0, 100] 内0 <= Node.val <= 100解题思路1.首先交换当前两个节点:使用一个中间变量next存储第二个节点

2022-05-23 15:03:01 96

原创 LeetCode:468. 验证IP地址

给定一个字符串 queryIP。如果是有效的 IPv4 地址,返回 “IPv4” ;如果是有效的 IPv6 地址,返回 “IPv6” ;如果不是上述类型的 IP 地址,返回 “Neither” 。有效的IPv4地址 是 “x1.x2.x3.x4” 形式的IP地址。 其中 0 <= xi <= 255 且 xi 不能包含 前导零。例如: “192.168.1.1” 、 “192.168.1.0” 为有效IPv4地址, “192.168.01.1” 为无效IPv4地址; “192.168.1.00

2022-05-20 15:39:20 450

原创 LeetCode:剑指 Offer 38. 字符串的排列

输入一个字符串,打印出该字符串中字符的所有排列。你可以以任意顺序返回这个字符串数组,但里面不能有重复元素。示例:输入:s = "abc"输出:["abc","acb","bac","bca","cab","cba"]限制:1 <= s 的长度 <= 8解题思路1.使用递归:依次去掉字符串一个字符,得到剩余字符串的全排列,将去掉的字符与剩余字符串的全排列拼接,最后将拼接完的所有字符串放入数组,并去重,返回这个数组给上一级2.递归结束条件:当前字符串长度小于等于1代码/**

2022-05-20 14:50:57 129

原创 LeetCode:113. 路径总和 II

给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。叶子节点 是指没有子节点的节点。示例 1:输入:root = [5,4,8,11,null,13,4,7,2,null,null,5,1], targetSum = 22输出:[[5,4,11,2],[5,8,4,5]]示例 2:输入:root = [1,2,3], targetSum = 5输出:[]示例 3:输入:root = [1,2], targ

2022-05-20 14:20:00 138

原创 LeetCode:429. N 叉树的层序遍历

给定一个 N 叉树,返回其节点值的层序遍历。(即从左到右,逐层遍历)。树的序列化输入是用层序遍历,每组子节点都由 null 值分隔(参见示例)。示例 1:输入:root = [1,null,3,2,4,null,5,6]输出:[[1],[3,2,4],[5,6]]示例 2:输入:root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]输出:[[1],[2

2022-05-18 17:19:15 84

原创 LeetCode:179. 最大数

给定一组非负整数 nums,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数。**注意:**输出结果可能非常大,所以你需要返回一个字符串而不是整数。示例 1:输入:nums = [10,2]输出:"210"示例 2:输入:nums = [3,30,34,5,9]输出:"9534330"提示:1 <= nums.length <= 1000 <= nums[i] <= 10^9解题思路1.首先对数组进行排序,若ba > ab,则交换a

2022-05-18 16:21:44 138

原创 LeetCode:678. 有效的括号字符串

给定一个只包含三种字符的字符串:( ,) 和 *,写一个函数来检验这个字符串是否为有效字符串。有效字符串具有如下规则:任何左括号 ( 必须有相应的右括号 )。任何右括号 ) 必须有相应的左括号 ( 。左括号 ( 必须在对应的右括号之前 )。*可以被视为单个右括号 ) ,或单个左括号 ( ,或一个空字符串。一个空字符串也被视为有效字符串。示例 1:输入: "()"输出: True示例 2:输入: "(*)"输出: True示例 3:输入: "(*))"输出: True注

2022-05-18 10:51:53 171

原创 LeetCode:821. 字符的最短距离

给你一个字符串 s 和一个字符 c ,且 c 是 s 中出现过的字符。返回一个整数数组 answer ,其中 answer.length == s.length 且 answer[i] 是 s 中从下标 i 到离它 最近 的字符 c 的 距离 。两个下标 i 和 j 之间的 距离 为 abs(i - j) ,其中 abs 是绝对值函数。示例 1:输入:s = "loveleetcode", c = "e"输出:[3,2,1,0,1,0,0,1,2,2,1,0]解释:字符 'e' 出现在下标 3、

2022-05-17 18:43:30 145

原创 LeetCode:剑指 Offer 55 - I. 二叉树的深度

输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。例如:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度 3 。提示:节点总数 <= 10000注意:本题与主站 104 题相同:https://leetcode-cn.com/problems/maximum-depth-of-binary-tree/

2022-05-17 09:56:58 131

原创 LeetCode:剑指 Offer 25. 合并两个排序的链表

输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。示例1:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4限制:0 <= 链表长度 <= 1000注意:本题与主站 21 题相同:https://leetcode-cn.com/problems/merge-two-sorted-lists/解题思路1.小连大,并返回2.利用双指针遍历两个有序链表,小的节点去连接大的节

2022-05-13 15:54:01 185

原创 LeetCode:106. 从中序与后序遍历序列构造二叉树

给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, postorder 是同一棵树的后序遍历,请你构造并返回这颗 二叉树 。示例 1:输入:inorder = [9,3,15,20,7], postorder = [9,15,7,20,3]输出:[3,9,20,null,null,15,7]示例 2:输入:inorder = [-1], postorder = [-1]输出:[-1]提示:1 <= inorder.length

2022-05-12 16:04:19 106

原创 LeetCode:168. Excel表列名称

给你一个整数 columnNumber ,返回它在 Excel 表中相对应的列名称。例如:A -> 1B -> 2C -> 3...Z -> 26AA -> 27AB -> 28 ...示例 1:输入:columnNumber = 1输出:"A"示例 2:输入:columnNumber = 28输出:"AB"示例 3:输入:columnNumber = 701输出:"ZY"示例 4:输入:columnNumber = 214

2022-05-12 15:31:58 161

原创 LeetCode:171. Excel 表列序号

给你一个字符串 columnTitle ,表示 Excel 表格中的列名称。返回 该列名称对应的列序号 。例如:A -> 1B -> 2C -> 3...Z -> 26AA -> 27AB -> 28 ...示例 1:输入: columnTitle = "A"输出: 1示例 2:输入: columnTitle = "AB"输出: 28示例 3:输入: columnTitle = "ZY"输出: 701提示:1 <=

2022-05-12 11:15:12 131

空空如也

空空如也

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

TA关注的人

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