- 博客(33)
- 收藏
- 关注
原创 洛谷题解P1518 [USACO2.4] 两只塔姆沃斯牛 The Tamworth Two
【代码】洛谷题解P1518 [USACO2.4] 两只塔姆沃斯牛 The Tamworth Two。
2025-10-02 17:57:11
231
原创 LeetCode题解2653. 滑动子数组的美丽值
我们首先很自然的想法用一个vector来存储当前窗口的数字,然后排序,下标x-1就是第x小的数。题目的数字大小是有范围的,这意味着我们可以用一个int cnt[101]来存储窗口里面的数字。题目很清晰,就是在一个定长滑动窗口中寻找到第x小的数。这个函数,我们就可以求得对应的beautyNumber。即cnt[ nums[right] ]++;提交的时候TLE了,我们再次查看题目,发现。运行很成功,三个样例都过了,但是,等等。这意味着我们不能这么写,太暴力了()那么,我们该如何写呢?再次回顾题目,我们看到。
2025-04-27 18:09:30
316
原创 LeetCode题解1297. 子串的最大出现次数
我们这样想,如果我们找到了一个满足该条件的子串,那么对于该子串,我们可以从中找到一个子串(长度在minSize和maxSize之间),也满足出现次数最多。于是,对于一个长度在minSize和maxSize之间的满足该要求的字符串,我们总是能找到他的一个子串也满足题目要求,从而,满足该条件的最小子串的长度就是minSize。那么,该题就是一个定长滑动窗口的题目。即,给定一个字符串,要求你在其中找出一个不同字母的数目小于maxLetters,长度为minSize的出现次数最多的子串。
2025-04-27 17:22:14
359
原创 P1563 [NOIP 2016 提高组] 玩具谜题(题解?(暴力TLE版)
这种做法属实是没必要,纯好玩()正规解法应为用vector然后计算每次指令的偏移量。
2025-02-27 18:23:30
189
1
原创 LeetCode19. 删除链表的倒数第 N 个结点
然后,我们也看到了,题目说让我们想想只遍历一次链表的方法。本题为基础题( )介绍下对齐链表的方法。
2024-12-13 16:05:40
385
原创 洛谷题解P1219 [USACO1.5] 八皇后 Checker Challenge
题目很简短,清晰易懂,就是要找到全部的能使n个棋子在不同行不同列并且也不会在同一对角线或与对角线平行的线上的排列方法,并输出按字典序排列的前三种方法。于是,我们采取搜寻列、两个方向的对角线的方法而不是遍历数组来判断当前位置能否放棋子。本题是一道dfs的题目()()感觉主要的困惑点在于对角线的判断(乍一看,最先想到的就是放个二维数组每次遍历,但又会很快的叉掉(
2024-12-12 19:51:20
830
原创 LeetCode2074. 反转偶数长度组的节点
本题要我们反转偶数长度组,如 1 | 2 3 | 4 5 6 | 7 8,就要我们反转2 3以及7 8,显然,我们需要每次操作前统计当前节点段的长度,如果长度为奇数,那么不反转,反则反转。但很奇怪的是,我觉得25题比这个简单,虽然25是困难,这个是中等( )看起来很人畜无害的隔段反转链表题,但写死我了( )还是不熟悉链表操作了。本题的相似题目为LeetCode。好耶ヾ(✿゚▽゚)ノ。
2024-12-10 23:15:30
511
原创 LeetCode2058. 找出临界点之间的最小和最大距离
不难看出,最小距离只会在相邻两个极值点取得,最大值则是一头一尾,这也启发我们要设置变量,用来记录头尾极值点的位置,以及两个相邻极值点的距离。本题要我们求出两个极值点最大距离以及最小距离,如果不存在则返回[-1,-1]本题,有一定难度,但不大。
2024-11-28 22:28:06
584
原创 LeetCode3208. 交替组 II
这题很显然,也是用滑动窗口解决的。右端遇到两个相同色块时,更新右端。窗口是长度位k的交替色块的长度。本题也是熟悉的滑动窗口~3.如何移动窗口右端?那么,又回到了老问题。2.如何移动窗口右端。
2024-11-27 21:21:27
493
原创 洛谷题解P1304 哥德巴赫猜想
显然,如果我们使用暴力算,对于每个数都算它的拆解并判断是否为素数,那么操作数会很巨大。题目要把4~N里的所有偶数拆成两个素数之和,并且保证第一个素数是最小的。于是,我们自然的想起用筛法来解决这一问题。本题来浅浅的复习一下欧拉筛吧~
2024-11-26 17:00:52
314
原创 洛谷题解P5461 赦免战俘
在本题,我们用了递归和分治的思想,前者用于把视角转到划分后的每个小矩阵,后者则是划分小矩阵后分类讨论,对于四个角的小矩阵分别讨论。嗯,地轨+粉制,思路很清晰的题目。
2024-11-25 11:45:49
730
原创 LeetCode151.反转字符串中的单词
此题要求把字符串反转且单词不变。注意到,单词与单词之间是以' '分隔,那么 我们便可用' '来检测是否读完一个单词。这题当然还是我们的双指针啦!
2024-11-24 23:41:20
330
原创 LeetCode844.比较含退格的字符串
我们从后向前遍历,这样可以避免从前向后遍历的弊端,也容易思考一点。很显然,此题一上来就有思路,当然是暴力解法,两个for嵌套解决。那么进阶的思路也很明显,就是双指针。
2024-11-24 12:47:20
196
原创 LeetCode34.在排序数组中查找元素的第一个和最后一个位置
刚刚已经说过,我们首先要找到一个元素的位置,然后向左二分查找第一个位置(如果有的话),向右查找最后一个位置(如果有的话)本题要求在有序数组找到元素第一个位置和最后一个,并且要求O(logn),那么很显然是用二分查找。这题不难,总体思路就是先二分找到个位置,然后分别向左和向右二分。代码有点长(),不过。
2024-11-24 10:59:32
229
原创 LeetCode76. 最小覆盖子串
每次存头部的时候判断是否覆盖了子串,如果覆盖了,那就判断当前长度是否小于最小长度,如果小于,更新答案的头端和尾端,并去除当前尾端元素,当前尾端向前移动,当然,和其他的窗口一样,这里我们也要循环判断是否还可以继续更新尾端(其他视情况往前找寻或者往后找)本弱鸡第一次写困难()也是第一次写出来()窗口就是覆盖t的最小子串。当然,还是熟悉的滑动窗口( )那么,总体思路就这样,上代码!
2024-11-21 21:23:47
505
原创 LeetCode904. 水果成篮
在此题中,我们的窗口是什么?窗口是满足水果种类与已摘得的水果种类一致的最大水果数目。怎么更新窗口的尾呢?把尾放到头的前一个,并循环向前判断是否是相同的种类,直至不同的。我们怎么向前移动窗口呢?遇到了不一样的水果种类的时候移动。万一末尾是一样的水果种类怎么办?我们在循环外面来一次判断。也是一道窗口的题(瑟瑟发抖)
2024-11-21 19:36:47
182
原创 LeetCode209. 长度最小的子数组
可以看到,本题要求在一个子数组里寻找满足要求的且长度最小的子数组的长度,注意,该子数组要是连续的,你不能是跳跃的。今天来分享我做的一道题,是求长度最小的子数组(我们可以采用滑动窗口的办法来解决这道题。鼠鼠的思路就在这里了(
2024-11-21 18:45:20
279
原创 洛谷题解 P1217 [USACO1.5] 回文质数 Prime Palindromes
氵题,基本的判断回文数和素数的方法() 很简单的题目,要求在给定范围内找到既是回文数又是素数的数 没什么问题 对于此题,我们可以写两个函数,一个用来判断是否是回文数,另一个用来判断是否是素数,前者我的方法是运用长度不断取模除10,后者自然的奇偶讨论 实际上,关于素数判断,在面临大范围的情况下,我们还可以用素数的性质来快速判断,与6的倍数有关,此处就不用了。
2024-11-10 11:29:07
388
原创 洛谷题解 P1009 [NOIP1998 普及组] 阶乘之和
高精度加法以及高精度乘法( ) 简略的题目,简略的算法,不一样的数据,此题的数据很显然不能用longlong或者unsignedlonglong类型,因为还是会上溢,题目也说了,要求高精度算法 没啥好说的( ) 在做题之前,我们先来看看什么是高精度计算,为什么需要高精度计算?那么我们粗略的知道了,对于高精度计算,对应着大整数之间或者对精度高要求的计算。此题便要我们实现高精度乘法以及加法。 做法就是每次乘完都来次进位,模仿竖式运算( )
2024-11-10 10:42:47
413
原创 洛谷题解 P1055 [NOIP2008 普及组] ISBN 号码
此题虽是黄题,但思路不难( 刚开始看就看到一堆文字,很容易上来就烦) 通过一大段的描述,我们知道了ISBN一共13位分别是9位数字,1位识别码(在最后),和3位分隔符,题目要我们判断输入的ISBN的识别码是否正确 没什么好说的,用gets什么的直接读或者for一个一个读都是可以的 没什么好说的这道黄题(挺氵的)
2024-11-10 10:13:38
472
原创 C语言学习记录-三傻排序(再版)
-----------------------------------------------------------来源---------------------------------------------------------------那么通过概念可知,核心就是选择最小元素,然后将其与后面的元素比较,若大(看你想升序还是降序),就交换,重复流程,直到最小元素选到第n-1个为止。首先看概念(我在此次仅放概念,不加阐释,有很多大佬讲的比我好()更何况我是记录我的学习过程()()())
2024-11-01 18:14:10
451
1
原创 C语言学习记录-裴波那契数列(Fibonacci sequence)
裴波那契数列(Fibonacci sequence)-------------------------------------------------------来源------------------------------------------------------------------根据定义,我们注意到,从第三项开始,斐波那契数列第 N 项为 N-1 项 加上 N-2 项。该方法直接翻译斐波那契数列的递推关系,即Fn = Fn-1 + Fn-2,值得注意的点为数据溢出。
2024-10-27 18:21:38
1135
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅