自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 资源 (3)
  • 收藏
  • 关注

原创 92.反转链表II

题目给你单链表的头节点 head 和两个整数 left 和 right ,其中 left <= right 。请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表 。示例输入:head = [1,2,3,4,5], left = 2, right = 4输出:[1,4,3,2,5]提示链表中节点数目为 n1 <= n <= 500-500 <= Node.val <= 5001 <= left <= right &l

2021-03-21 21:47:40 95

原创 54.螺旋矩阵

题目给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。示例输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,6,9,8,7,4,5]提示m == matrix.lengthn == matrix[i].length1 <= m, n <= 10-100 <= matrix[i][j] <= 100题解模拟循环按照第一行–>最后一列–>最后一行–&g

2021-03-21 21:23:55 138

原创 73.矩阵置零

给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。进阶:一个直观的解决方案是使用 O(mn) 的额外空间,但这并不是一个好的解决方案。一个简单的改进方案是使用 O(m + n) 的额外空间,但这仍然不是最好的解决方案。你能想出一个仅使用常量空间的解决方案吗?示例输入:matrix = [[1,1,1],[1,0,1],[1,1,1]]输出:[[1,0,1],[0,0,0],[1,0,1]]提示m == matrix.

2021-03-21 21:22:52 210

原创 331.验证二叉树的前序序列化

题目序列化二叉树的一种方法是使用前序遍历。当我们遇到一个非空节点时,我们可以记录下这个节点的值。如果它是一个空节点,我们可以使用一个标记值记录,例如 #。 _9_ / \ 3 2 / \ / \ 4 1 # 6/ \ / \ / \# # # # # #例如,上面的二叉树可以被序列化为字符串 “9,3,4,#,#,1,#,#,2,#,6,#,#”,其中 # 代表一个空节点。给定一串以逗号分隔的序列,验证它是否是正确的二叉树的前序序列化

2021-03-14 13:12:55 111

原创 224.基本计算器

题目给你一个字符串表达式 s ,请你实现一个基本计算器来计算并返回它的值。示例输入:s = "1 + 1"输出:2提示1 <= s.length <= 3 * 105s 由数字、’+’、’-’、’(’、’)’、和 ’ ’ 组成s 表示一个有效的表达式题解双栈,一个栈存储数字,另外一个栈存储运算符计算的顺序:有括号先算括号内,然后再按照顺序计算在遍历表达式过程中可能遇到以下情况:空格则跳过+ || -:加号或者减号0~9:数字则向后遍历,将该数字取完(:

2021-03-14 12:33:04 97

原创 705.设计哈希集合

题目不使用任何内建的哈希表库设计一个哈希集合(HashSet)。实现 MyHashSet 类:void add(key) 向哈希集合中插入值 key 。bool contains(key) 返回哈希集合中是否存在这个值 key 。void remove(key) 将给定值 key 从哈希集合中删除。如果哈希集合中没有这个值,什么也不做。示例输入:["MyHashSet", "add", "add", "contains", "contains", "add", "contains", "r

2021-03-14 12:28:44 84

原创 706.设计哈希映射

题目不使用任何内建的哈希表库设计一个哈希映射(HashMap)。实现 MyHashMap 类:MyHashMap() 用空映射初始化对象void put(int key, int value) 向 HashMap 插入一个键值对 (key, value) 。如果 key 已经存在于映射中,则更新其对应的值 value 。int get(int key) 返回特定的 key 所映射的 value ;如果映射中不包含 key 的映射,返回 -1 。void remove(key) 如果映射中存在 k

2021-03-14 12:28:07 70

原创 132.分割回文串II

题目给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是回文。返回符合要求的 最少分割次数 。示例1输入:s = "aab"输出:1解释:只需一次分割就可将 s 分割成 ["aa","b"] 这样两个回文子串。题解动态规划。dp[i]代表前i个字符的最小分割次数,dp[i]最多可以分割i-1次若区间[j, i]是回文串,且dp[j]已知,则只需要再多分割一次将区间[j, i]分割出来故:dp[i] = Math.min(dp[i], dp[j]+1)参考代码clas

2021-03-12 21:56:31 81

原创 131.分割回文串

题目给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串。返回 s 所有可能的分割方案。示例输入: "aab"输出:[ ["aa","b"], ["a","a","b"]]题解回溯模版题参考代码class Solution { List<List<String>> res = new ArrayList<>(); public List<List<String>> partiti

2021-03-07 13:54:37 80

原创 503.下一个更大元素II

题目给定一个循环数组(最后一个元素的下一个元素是数组的第一个元素),输出每个元素的下一个更大元素。数字 x 的下一个更大的元素是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它的下一个更大的数。如果不存在,则输出 -1。示例输入: [1,2,1]输出: [2,-1,2]解释: 第一个 1 的下一个更大的数是 2;数字 2 找不到下一个更大的数; 第二个 1 的下一个最大的数需要循环搜索,结果也是 2。题解对于数组中的每一个元素都是寻找其下一个比当前数更大的

2021-03-06 19:52:16 160

原创 995.k连续位的最小翻转次数

题目在仅包含 0 和 1 的数组 A 中,一次 K 位翻转包括选择一个长度为 K 的(连续)子数组,同时将子数组中的每个 0 更改为 1,而每个 1 更改为 0。返回所需的 K 位翻转的最小次数,以便数组没有值为 0 的元素。如果不可能,返回 -1。示例输入:A = [0,1,0], K = 1输出:2解释:先翻转 A[0],然后翻转 A[2]。提示1 <= A.length <= 300001 <= K <= A.length题解维持一个大小为K的窗

2021-03-05 12:52:45 176

原创 354.俄罗斯套娃信封问题

题目给你一个二维整数数组 envelopes ,其中 envelopes[i] = [wi, hi] ,表示第 i 个信封的宽度和高度。当另一个信封的宽度和高度都比这个信封大的时候,这个信封就可以放进另一个信封里,如同俄罗斯套娃一样。请计算 最多能有多少个 信封能组成一组“俄罗斯套娃”信封(即可以把一个信封放到另一个信封里面)。注意:不允许旋转信封。示例输入:envelopes = [[5,4],[6,4],[6,7],[2,3]]输出:3解释:最多信封的个数为 3, 组合为: [2,3]

2021-03-04 20:41:34 209 1

原创 1774.最接近目标价格的甜品成本

题目你打算做甜点,现在需要购买配料。目前共有 n 种冰激凌基料和 m 种配料可供选购。而制作甜点需要遵循以下几条规则:必须选择 一种 冰激凌基料。可以添加 一种或多种 配料,也可以不添加任何配料。每种类型的配料 最多两份 。给你以下三个输入:baseCosts ,一个长度为 n 的整数数组,其中每个 baseCosts[i] 表示第 i 种冰激凌基料的价格。toppingCosts,一个长度为 m 的整数数组,其中每个 toppingCosts[i] 表示 一份 第 i 种冰激凌配料的价格。

2021-03-01 16:10:25 189

原创 357.至少有K个重复字符的最长子串

题目给你一个字符串 s 和一个整数 k ,请你找出 s 中的最长子串, 要求该子串中的每一字符出现次数都不少于 k 。返回这一子串的长度。示例1输入:s = "aaabb", k = 3输出:3解释:最长子串为 "aaa" ,其中 'a' 重复了 3 次。提示1 <= s.length <= 104s 仅由小写英文字母组成1 <= k <= 105题解理解题意:要求子串中每一字符的出现次数都不少于K,即:该子串不包含出现次数小于K的字符我们可以依据该

2021-03-01 16:09:52 179

DataStruct_Cpp.zip

严蔚敏数据结构第2,3,4,5,6章代码实现。C++

2021-02-03

ELinkList.cpp

严蔚敏数据结构ELinkList

2021-02-03

DuLinkList.cpp

严蔚敏数据结构DuLinkList

2021-02-03

空空如也

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

TA关注的人

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