retyrn
retyrn
全部文章
分类
题解(3)
归档
标签
去牛客网
登录
/
注册
retyrn的博客
全部文章
(共206篇)
题解 | #向左移动牛群# 三次翻转
知识点利用翻转O(1)解决循环数组位移思路首先k对n取模,因为大于n的时候会循环回来,是没有意义的。假如要把前k个数循环移动,我们可以先翻转前n-k个数,再翻转后k个数。最后整个数组翻转即可实现。时空复杂度时间复杂度为AC Code (C++) class Solution { public: ...
2023-07-24
1
211
题解 | #牛群的编号重排# STL 函数
知识点prev_permutation()函数思路prev_permutation()函数返回字典序上一个的排列AC code (C++) #include <algorithm> class Solution { public: /** * 代码中的类名、方法名、参数...
2023-07-24
0
220
题解 | #牛的品种排序III# 计数
知识点计数思路对k个数字计数,然后一次对原数组赋值。时间复杂度为AC code (C++) class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @para...
2023-07-24
0
245
题解 | #牛的品种排序II# 计数
知识点计数 模拟思路遍历数组,对三种牛计数。然后依照计数个数对结果数组赋值。时间复杂度AC code (c++) class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * ...
2023-07-24
0
255
题解 | #牛群名字覆盖# 双指针
知识点双指针思路双指针,一个指针指向合法子字符串的开头,一个指向末尾,末尾不断向后移动,开头指向合法的最靠后的位置,如果符合要求则更新答案。由于每个点只遍历一次,时间复杂度是线性的。时间复杂度AC code (C++) class Solution { public: /** * ...
2023-07-24
0
306
题解 | #最小活动范围# 单调队列
知识点单调队列思路需要维护一个窗口的最小值,是单调队列的应用场景。单调队列板子题。时间复杂度对于每个值只加入队列一次、出队列一次,时间复杂度为线性的,时间复杂度AC code(C++) class Solution { public: /** * 代码中的类名、方法名、参数名已经指...
2023-07-24
0
266
题解 | #牧场奶牛集合区域# 数组模拟
知识点模拟思路要统计有序数组中的线段,可以从左到右模拟,维护一个当前线段的起始位置,当不满足当前一对元素的差值为1的时候将当前元素加入答案,然后更新下一组线段的起始位置。时间复杂度只遍历一遍数组,时间复杂度为AC code(C++) class Solution { public: /** ...
2023-07-23
0
303
题解 | #牛的品种排序I# 双指针
知识点双指针思路维护两个指针,i在左边,j在右边,i从左到右遍历,当遇到i指向的位置是1的时候,j向左移动找到最近的0,然后交换,如果i和j相遇则表示完成。时间复杂度双指针,每个节点只会访问常数次,时间复杂度为AC Code(C++) class Solution { public: /**...
2023-07-23
1
277
题解 | #不同的体重# 哈希表
知识点哈希表思路用哈希表统计不同的体重的牛的个数,遍历所有的组,用一个布尔数组记录是否之前出现过。时间复杂度哈希表插入时间复杂度为总体时间复杂度为AC code (C++) #include <unordered_map> class Solution { public: /**...
2023-07-23
0
258
题解 | #第k轻的牛牛# 快速选择
知识点快速选择思路要求时间复杂度为,我们可以使用快速选择算法解决。快速选择算法是在快速排序算法的基础上,选择整个数组中第k小的数。如果 那么结果一定出现在左半边,只需要递归left一共SL个数字如果 那么结果一定出现在右半边 ,只需要递归right一共k-SL个数时间复杂度AC code (C+...
2023-07-23
0
284
首页
上一页
10
11
12
13
14
15
16
17
18
19
下一页
末页