看见嘉然柚恩了
看见嘉然柚恩了
全部文章
分类
归档
标签
去牛客网
登录
/
注册
看见嘉然柚恩了的博客
全部文章
(共100篇)
题解 | #牛群的位置排序#
知识点 二分 思路 已知数组升序,故对于target来说,可以使用二分查找插入的位置,此位置的数要么为target,要么是小于target的第一个数。 在二分前特判一下是否可能插在数组头前或者尾后即可 代码c++ class Solution { public: /** * 代码中...
2023-08-11
0
367
题解 | #小猪摘水果#
知识点 前缀和 思路 用now维护当前的树的果子数量。对于第i个位置,now=now+fruit[i]。另外使用一个ans维护最大的果子数量即可 代码 class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值...
2023-08-11
0
278
题解 | #相等的草堆#
知识点 前缀和后缀和,模拟 思路 设数组长度为n 分别维护从左往右的前缀和l[i]=sum(nums[0i])以及从右往左的后缀和l[i]=sum(nums[in-1]),再从左往右遍历一次数组,若出现l[i-1]=r[i+1](等效于l[i]==r[i])则直接返回i 否则返回-1 代码c++ c...
2023-08-10
0
294
题解 | #最大放牛数#
知识点 模拟,贪心 思路 当i与i-1位置都为0时,这个位置0变为1,同时n--。 特判:i=0且i位置为0时,也要将这个位置变为1,同时n--。 最后当n<=0,可以返回true。否则返回false 代码c++ class Solution { public: /** * ...
2023-08-10
0
239
题解 | #牛群重量积#
知识点 前缀积 思路 设nums数组长度为n 由于题意不允许使用除法,所以我们可以分别维护从左往右的前缀积l[i]和从右往左的前缀积r[i]。 除了头部两个以及尾部两个(下标为0,1,n-1,n-2)以外,对其余i的答案则为 l[i-2]*r[i-2] 遍历一遍更新答案即可 代码 class S...
2023-08-10
0
304
题解 | #没有出现的编号#
知识点 排序,模拟 思路 首先将这个数组从小到大排序,然后从小到大遍历。 对最大的负数maxx,先初始化为负无穷,遇到比他大的负数就更新即可。若从未更新,说明没有负数,maxx=0 对未出现的最小正整数minn,假设是1。在数组从小到大遍历到正数时,若刚好为minn,说明minn出现了,下一个未出现...
2023-08-10
0
236
题解 | #向左移动牛群II#
知识点 数学公式 思路 对于第i行第j个点(从0开始看),在矩阵中的值为: int ii = (i + k) % n; int jj = (j + k) % n; nums[i][j] = n * ii + jj + 1; 代码c++ class Solution { public: /...
2023-08-10
0
291
题解 | #向左移动牛群#
知识点 思维 思路 翻转前n-k,再翻转后k,再翻转整个即可 代码 #include <algorithm> class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * ...
2023-08-09
0
199
题解 | #牛群的编号重排#
知识点 思维 双指针 思路 对一个排列,为获得比他小一个字典序的全排列,需要找一个较大的值,和右侧更小的一个值进行交换,这样才能让序列变小。 对于较大的值 i 来说,我们从后倒数第二个开始(给后面留一个数)往前找出第一个大于后方数字的值作为较大值 i。 然后在i的右方找出小于 i 的值,作为较小的值...
2023-08-09
0
305
题解 | #牛的品种排序III#
知识点 遍历,模拟 思路 用一个map建立从i到i出现次数的映射,遍历cows数组,每出现一次就在对应出现次数处++。遍历完以后,对于整个map进行遍历,向ans数组中插入i对应出现次数个i。返回ans即为答案。时间复杂度为O(nLOGn) 代码 class Solution { public: ...
2023-08-09
0
320
首页
上一页
1
2
3
4
5
6
7
8
9
10
下一页
末页