自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 力扣第321场周赛+acwing第79场周赛补题

力扣第321场周赛+acwing第79场周赛补题

2022-11-27 20:25:58 338 1

原创 第320场leetcode周赛补题

第320场leetcode周赛

2022-11-20 16:51:12 556

原创 leetcode第319场周赛

leetcode第319场周赛

2022-11-13 19:39:47 215

原创 力扣第315场周赛补题

力扣第315场周赛补题

2022-10-19 21:52:33 180

原创 力扣第314场周赛+acwing第72场周赛

力扣第314场周赛+acwing第72场周赛

2022-10-12 21:39:08 127

原创 leetcode312场周赛补题+acwing70场周赛补题

leetcode312场周赛+acwing70场周赛补题

2022-09-27 20:54:54 614

原创 leetcode第311场周赛补题

leetcode311

2022-09-22 20:20:14 121

原创 leetCode第310场周赛

首先我们标记每一个区间开始和结束的位置,开始位置+1,结束位置-1,这样就可以得到一个类似下图粉色数字的数组(未标记位置为0),对这个数组求前缀和就可以知道每个位置区间的个数。两种可行的划分方法分别是 (“a”,“ba”,“cab”,“a”) 和 (“ab”,“a”,“ca”,“ba”)。输入:intervals = [[5,10],[6,8],[1,5],[2,3],[1,10]]如果不存在这样的元素,返回 -1。输入:intervals = [[1,3],[5,6],[8,10],[11,13]]

2022-09-11 13:47:36 157

原创 【无标题】leetcode 第308场周赛补题

给你一个长度为 n 的整数数组 nums ,和一个长度为 m 的整数数组 queries 。返回一个长度为 m 的数组 answer ,其中 answer[i] 是 nums 中 元素之和小于等于 queries[i] 的 子序列 的 最大 长度 。子序列 是由一个数组删除某些元素(也可以不删除)但不改变剩余元素顺序得到的一个数组。...

2022-09-01 17:14:08 164

原创 第85场双周赛+307场周赛

给你一个长度为 n 下标从 0 开始的字符串 blocks ,blocks[i] 要么是 'W' 要么是 'B' ,表示第 i 块的颜色。字符 'W' 和 'B' 分别表示白色和黑色。给你一个整数 k ,表示想要 连续 黑色块的数目。每一次操作中,你可以选择一个白色块将它 涂成 黑色块。请你返回至少出现 一次 连续 k 个黑色块的 最少 操作次数。...

2022-08-25 23:40:23 1097

原创 力扣305周赛+acwing63周赛

给你一个下标从 0 开始、严格递增 的整数数组 nums 和一个正整数 diff 。如果满足下述全部条件,则三元组 (i, j, k) 就是一个 算术三元组 :

2022-08-11 14:53:33 178

原创 leetcode 304周赛补题

给你一个非负整数数组 nums 。在一步操作中,你必须:选出一个正整数 x ,x 需要小于或等于 nums 中 最小 的 非零 元素。

2022-08-03 16:44:49 1241

原创 acwing第62场周赛补题

给定一个长度为 n 的数组 r1,r2,…,rn。请你找到其中的三个元素 ra,rb,rc,使得 ra

2022-08-03 15:13:03 95

原创 303周赛补题

给你一个由小写英文字母组成的字符串 s ,请你找出并返回第一个出现 两次 的字母。注意:如果 a 的 第二次 出现比 b 的 第二次 出现在字符串中的位置更靠前,则认为字母 a 在字母 b 之前出现两次。s 包含至少一个出现两次的字母。...

2022-07-27 16:29:56 179

原创 acwing61场周赛补题

给定三个正整数 a,b,c。请计算 ⌊a+b+c2⌋,即 a,b,c 相加的和除以 2 再下取整的结果。输入格式第一行包含整数 T,表示共有 T 组测试数据。每组数据占一行,包含三个正整数 a,b,c。

2022-07-26 16:42:03 104

原创 力扣302周赛补题

这个题目的思路很明了,直接就是遍历删除数组中可以组成数对的元素,最后数组中剩下的就是不能组成数对的。所以我一开始在写这个题目的时候就是先对原数组排序,然后遍历计数。得到结果。但是我一开始没有考虑到边界问题,所以导致错了好几次。...

2022-07-19 16:47:12 118

原创 第301场周赛补题

现有一台饮水机,可以制备冷水、温水和热水。每秒钟,可以装满 2 杯 不同 类型的水或者 1 杯任意类型的水。给你一个下标从 0 开始、长度为 3 的整数数组 amount ,其中 amount[0]、amount[1] 和 amount[2] 分别表示需要装满冷水、温水和热水的杯子数量。返回装满所有杯子所需的 最少 秒数。...

2022-07-14 16:56:39 118

原创 力扣300场周赛补题

这个题目的主要意思就是根据题目给的key构造一个新的字母表,然后将message中的字母对应的位置再对应到正确的字母表,拼接成正确的信息。所以我们可以用遍历key用哈希表存储每个字母出现的位置,然后直接在message中将字母对应位置进行替换。...

2022-07-07 14:29:24 117

原创 力扣第299场周赛

T1:判断一个矩阵是否是X矩阵这个题目的思路有很多种,看怎么去判断。但是最终的目的都是为了判断对角线上的元素是否都不为零,其他元素都为零。

2022-06-30 12:35:07 970

原创 【无标题】力扣第298场周赛

力扣298周赛补题

2022-06-23 23:19:03 124

原创 Acwing第50场周赛

T1:缺少的数给定一个长度为 n−1 的数列 a1,a2,…,an−1。数列中的元素两两不同,且都在 1∼n 的范围内。请你计算,1∼n 中的哪一个数没有在数列中出现过。输入格式第一行包含一个整数 n。第二行包含 n−1 个整数 a1,a2,…,an−1。输出格式输出 1∼n 中没有在数列中出现过的数。数据范围前三个测试点满足 2≤n≤10。所有测试点满足 2≤n≤105,1≤ai≤n。输入样例:103 8 10 1 7 9 6 5 2输出样例:4这个题目之前有遇到过类似的

2022-05-14 15:34:10 126

原创 leetcode第291场周赛

T1:删除指定数字得到的最大结果这个题思路很简单。对字符串遍历,找到等于digit的位置时,拼接字符串前后的数字。在遍历过程中,会有不同位置出现digit,比较更新即可。class Solution {public: string removeDigit(string number, char digit) { string res; for(int i=0;i<number.size();i++){ if(number[i]==d

2022-05-07 15:05:56 334

原创 【无标题】LeetCode第290场周赛

T1:多个数组求交集看到这个题的第一眼其实思路不太清晰,于是我跳到了第二题(没错,我就是这般没有毅力)然后看了眼第二题我又跳回来了,突然就觉得思路出来了。将二维数组中的所有元素全部用哈希表计数。最后返回元素个数为nums的长度就好了。class Solution {public: vector<int> intersection(vector<vector<int>>& nums) { unordered_map<int,int

2022-04-29 14:23:07 210

原创 LeetCode第289场周赛+第76场双周赛

289场周赛:第一题:计算字符串数字和看到这个题的思路就是模拟,一遍一遍缩小字符串长度,直到最后字符串的长度小于k。然后我想到了第一层用一个while循环,来判断字符串长度。在后续对字符串的处理上实在是没怎么想清楚。所以,残忍的宣告了放弃。经过赛后的分析,看别人的题解。理解了这其中的奥妙:参考代码:class Solution {public: string digitSum(string s, int k) { int n=s.size(); while

2022-04-22 15:30:07 621

原创 第288场leetCode周赛总结

第一题:按奇偶性交换后的最大数字我看到这个题目一开始就有两种思路。一是将整数转化为字符串后将奇偶数分成两个数组,标记原字符串中的奇偶数位置,然后对两个数组排序。最后直接根据标记从数组中取出奇偶数组合即可。嗯,好笑的来了,我并不能写出代码。第二种思路就是转化为字符串后使用冒泡排序,然后再转化为整数。我也是这样写了,但是最后为什么没有通过呢,因为我把冒泡排序写错了,然后直接还没有发现。看看我写的错误代码吧:(其实一开始在整数转字符串和字符串转整数我都用的函数,可能是因为用法不对报错了,我就自己手写了)cl

2022-04-14 20:38:09 279 1

原创 树的层序遍历

突然想到写这个的原因是在四月份的每日一题里面有一个n叉树的层序遍历,然后自己做的其实不熟练。又想到之前又写过二叉树的层序遍历,所以就想着将几个题目一起总结起来。也算是加深一下印象了。树的遍历方法一共四种:先序遍历、中序遍历、后序遍历、层序遍历。前三种方法中的序是指根节点的遍历顺序,一般使用递归(深度优先遍历)的方法实现。层序遍历是指从最上层开始,一层一层的从左到右遍历,而不再是先左后右或先右后左。层序遍历和广度优先搜索的思路比较像,维护一个队列,先将根结点放入队列中,当该结点出队列是,他的孩子结点

2022-04-10 15:33:34 3256

原创 力扣287周赛总结

这次周赛因为放清明假,摆了两天,导致状态一直不对,开赛过后就只是看了看题目,想了一下思路,浅写了一下代码,超出时间限制以后就再也没有了重新修改的心思,也就相当于放弃了比赛。T1:转化时间需要的最少操作次数这个题看第一眼思路就很明确,将字符串转化成整数。然后再由高到底进行操作,这样得到的便是最少擦作次数。将字符串转化为整数的方法有两种,一是自己实现,即current[0]-'0’这样字符current[0]就转变为了整数。二是使用库函数atoi函数。int i=atoi(current[0]);在将字

2022-04-05 15:15:02 400

原创 leetcode第七十四场双周赛总结

到现在为止,我都还只是一个一题选手。本来这次第一题完成的很快,我觉得我可以写出来第二题。但是我一直在一个分情况讨论里面绕不出来,本来代码能力就还不够,一下子想复杂了,就直接放弃关电脑睡觉了,后面的题目看都没看。一、将数组划分成相等数对这个属于一看题目思路就很了然了,我直接用的哈希计数,判断每个数字出现的次数是否均为2的倍数。但是一开始在判断是否为2的倍数时将条件写错了,写为出现一次即返回true,导致wa一次。class Solution {public: bool divideArray(

2022-03-21 21:22:51 236

原创 子序列问题

子序列问题(双指针,动态规划)例题一:判断子序列(力扣392)链接:https://leetcode-cn.com/problems/is-subsequence/题目描述:给定字符串 s 和 t ,判断 s 是否为 t 的子序列。字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。进阶:如果有大量输入的 S,称作 S1, S2, … , Sk 其中 k >= 10亿,你需

2022-03-07 21:56:13 1290 2

原创 字符串哈希

字符串哈希:简单理解就是将一个字符串通过某种hash函数变为数字。降低字符串的匹配等工作时间复杂度。在需要对两个字符串进行匹配时,如果使用字符串哈希,可以将时间复杂度由线性阶降为常量阶。获取哈希值的基本思路:以简单字符串为例在这里面有一个前缀和的思想。在获得字符串内某一个区间的哈希值时可以类比于我们求一个多位整数的各位数字因为在在求区间哈希值时需要用到进制的次方,所以我们一般会定义一个数组用于专门存储次方。p[0]=1; for(int i=1;i<S.size();i++){

2022-03-03 00:10:54 5749 1

原创 矩阵中的搜索

例题一:太平洋大西洋水流问题https://leetcode-cn.com/problems/pacific-atlantic-water-flow/submissions/题目分析:仔细理解题目意思可知,岛屿被分为很多个小块,现在因为各小块的海拔不同,所以岛屿上不同小块的雨水会流向不同的海洋,我们需要找到的就是雨水既可以流向大西洋又可以流向太平洋的小块。从岛屿流向海洋的思路考虑:水往低处流,如果一个小块周围的小块海拔都比他小(或等于)则这个小块上的雨水就可以向外流。但是在这块岛屿中我们不能确定

2022-03-01 21:25:25 249

原创 【无标题】矩阵中的问题

例一:对角线遍历链接:https://leetcode-cn.com/problems/diagonal-traverse/题目描述:给你一个大小为 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

2022-02-25 22:28:52 209

原创 简单的二分查找

例题一:第K个缺失的正整数链接:https://leetcode-cn.com/problems/kth-missing-positive-number/题目描述:给你一个 严格升序排列 的正整数数组 arr 和一个整数 k 。请你找到这个数组里第 k 个缺失的正整数。示例 1:输入:arr = [2,3,4,7,11], k = 5 输出:9 解释:缺失的正整数包括 [1,5,6,8,9,10,12,13,…]。第 5 个缺失的正整数为 9 。示例 2:输入:arr = [1,2,

2022-02-21 00:42:17 754

原创 动态规划问题

动态规划例题一:不同的二叉搜索树https://leetcode-cn.com/problems/unique-binary-search-trees/submissions/题目描述:给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。示例 1:输入:n = 3输出:5示例 2:输入:n = 1输出:1提示:1 <= n <= 19二叉搜索树是一棵有序的二叉树,所以我们也可以称它为二叉

2022-02-16 00:41:26 461

原创 子集中的回溯问题

子集中的回溯问题例题一:子集||(力扣90)子集||题目描述:给你一个整数数组 nums ,其中可能包含重复元素,请你返回该数组所有可能的子集(幂集)。解集 不能 包含重复的子集。返回的解集中,子集可以按 任意顺序 排列。示例一:输入:nums = [1,2,2]输出:[[],[1],[1,2],[1,2,2],[2],[2,2]]示例二:输入:nums = [0]输出:[[],[0]]提示:1 <= nums.length <= 10-10 <= n

2022-02-10 23:28:30 877

原创 数据结构之双向链表

**双向链表**在题目开始之前先简单介绍一下双向链表。双向链表是指在单链表的每个结点中,再设置一个指向其前驱结点的指针域。所以双向链表的结点中都有两个指针域,一个指向直接后继,一个指向直接前驱。力扣剑指offer36:二叉搜索树与双向链表题目描述:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表。要求不能创建任何新的节点,只能调整树中节点指针的指向。为了让您更好地理解问题,以下面的二叉搜索树为例:我们希望将这个二叉搜索树转化为双向循环链表。链表中的每个节点都有一个前驱和

2022-02-08 22:38:28 257

原创 简单前缀和问题

简单前缀和问题力扣第70场双周赛第二题2145、统计隐藏数组数目题目描述给你一个下标从 0 开始且长度为 n 的整数数组 differences ,它表示一个长度为 n + 1 的 隐藏 数组 相邻 元素之间的 差值 。更正式的表述为:我们将隐藏数组记作 hidden ,那么 differences[i] = hidden[i + 1] - hidden[i] 。同时给你两个整数 lower 和 upper ,它们表示隐藏数组中所有数字的值都在 闭 区间 [lower, upper] 之间。比方

2022-02-01 23:44:55 87

原创 滑动窗口问题

滑动窗口(定长与不定长)例一:找到字符串中的所有字母异位词(力扣438)找到字符串中的所有字母异位词题目描述:给定两个字符串 s 和 p,找到 s 中所有 p 的 异位词 的子串,返回这些子串的起始索引。不考虑答案输出的顺序。异位词 指由相同字母重排列形成的字符串(包括相同的字符串)。题目分析:异位词指 相同字母重排,即在一个字符串里面只要各个字母出现的次数相同即可,与出现顺序无关。所有我们只需要判断s中和p长度相同的一段子串里面各个字母出现的次数和p中是否相同即可。这里就会用到一个定长滑动窗

2022-01-28 23:18:55 811

空空如也

空空如也

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

TA关注的人

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