小狐今天睡大觉
小狐今天睡大觉
全部文章
分类
归档
标签
去牛客网
登录
/
注册
小狐今天睡大觉的博客
全部文章
(共44篇)
题解 | 01背包前置题
使用01背包dp思路解决。目的是找出是否能有一个结果总价值为k,暴力枚举复杂度太大。不妨将问题转变为 总价值为k是否可以被凑出来?建立一个dp数组,范围0到k+1,初始化false,dp[i]表示价值i是否可以被凑出来。dp[0] 置 true,当我们什么物品都不选,价值为0。从前向后遍历:j是目标...
2026-01-05
0
6
题解 | 字符串构造判定
使用c++ hashmap实现(无序unordered_map):读取T中的所有字符,对字符value加一。读取S中所有字符,对map中的对应字符减一。最后遍历一遍map,如果发现了有任意一个value小于0,说明S的字符数量超过T中字符了,返回false。否则返回true。 #include &l...
2026-01-04
0
10
题解 | 两个数组的交集
使用c++红黑树map存储(有序)。对于数组1,读取每一位,对应位数value加一。对于数组2,读取每一位,同时读取该位在map中的状态,如果出现过,则将该位标记为-1。最后读取所有value为-1的key,存到数组里返回即可。由于红黑树map有序,我们无需再次对数组排序;如果使用unordered...
2026-01-04
1
10
题解 | 字母异位词的长度
使用c++红黑树map实现 Key:字符 Value:次数:读入字符串s的每一位,将对应位加一。读入字符串c的每一位,将对应位减一。如果发现最后的Value不是0,说明不是“异位词”,输出-1;否则输出字符串长度(异位词最后长度一定相同)。 #include <map> class So...
2026-01-04
0
8
题解 | 构造数列
由于前n/2个数为偶数,后n/2个数为奇数,且数不能重复,我们不难发现2 6 10 14这类数组大小为奇数*2 的数组无论如何都无法构建符合条件的数组。对于构造符合条件的数组,我们可以将前面偶数部分按顺序排列出来,后面的奇数部分排列到最后一个数之前。最后一个数用 偶数和减去已排列的奇数和 得出,由于...
2026-01-04
0
8
题解 | 好串
瞪眼法可知,只要字符串符合存在一个a仅对应一个b,那这个字符串绝对可以通过插入ab得到。采用栈,如果遇到a就入栈,遇到b则弹出栈顶,如果栈为空则说明匹配失败。(类似括号匹配) #include <iostream> #include <stack> using namespa...
2026-01-03
0
10
题解 | 生词篇章查询
使用c++红黑树map实现:Key:单词 Value:所在文档编号集合读取每篇文档的所有单词,插入到map中,使用map[string]即可得到该字符在哪些文档中。注意插入时要去重,一篇文章可能有多个相同单词。 #include <iostream> #include <map&g...
2026-01-03
1
9
题解 | 穷哈哈~
读取字符串长度和字符串内容。从第一个字符开始向后遍历,用一个计数器记录当前满足交替条件的子串长度。如果当前字符和前一个字符正好是'a'和'h'交替(可以是"ah"也可以是"ha"),就让计数器加1,否则计数器重置为1(因为单独一个'a'或'h'也符合要求)。在...
2026-01-03
0
11
题解 | 小红的01串
瞪眼法可知,如果出现0和1的数量都是奇数,无论怎么换位都无法满足条件。 #include <iostream> using namespace std; int main() { int t,a0=0,a1=0; cin>>t; while(t--)...
2025-12-31
0
13
题解 | 数组计数维护
按题目要求做就可以了。S←S+ai 表示 S=S+a[i] ,刚开始没看懂什么意思还以为是特殊运算。 #include <iostream> #include <vector> using namespace std; int main() { int t,n,k...
2025-12-28
0
13
首页
上一页
1
2
3
4
5
下一页
末页