小牛哥永不退缩
小牛哥永不退缩
全部文章
分类
归档
标签
去牛客网
登录
/
注册
小牛哥永不退缩的博客
全部文章
(共73篇)
题解 | #牛群全排列数#
一、知识点:动态规划(DP)二、文字分析:动态规划:我们使用一个数组dp来保存每个阶段的计算结果,通过递推关系dp[i] = i * dp[i-1]来计算。最后返回dp[n]的结果。时间复杂度为O(n)三、编程语言:java四、正确代码: public class Solution { pu...
2023-07-19
0
338
题解 | #牧场奶牛集合区域#
一、知识点:双指针二、文字分析:使用两个指针 start 和 end 分别表示当前区间的起始位置和结束位置。遍历集合点编号数组时,如果当前集合点的编号与上一个集合点的编号连续,则更新当前区间的结束位置;否则,将当前区间的起始位置和结束位置加入结果中,并更新当前区间的起始位置和结束位置。最后,将最后一...
2023-07-19
0
305
题解 | #草原上的牛群分布#
一、知识点:双指针二、文字分析:用双指针的方法,详解在代码注释中。复杂度分析:该算法只对数组进行一次遍历,因此时间复杂度为 O(n),其中 n 是数组的长度。算法只使用了常数个额外变量,空间复杂度为 O(1)。三、编程语言:java四、正确代码: public class Solution { ...
2023-07-19
1
347
题解 | #调整牛群的位置#
一、知识点:数组二、文字分析:进行三次翻转操作:第一次翻转是翻转整个数组;第二次翻转是翻转前 k 个元素;第三次翻转是翻转剩余的元素。最后,将翻转后的数组的元素加入到结果中,并返回结果。复杂度分析:该算法的时间复杂度为 O(n)。翻转数组的操作需要 O(n) 的时间,其它操作的时间复杂度为 O(1)...
2023-07-18
1
261
题解 | #草原上优势牛种#
一、知识点:数组、遍历二、文字分析:使用两个变量 count 和 candidate 分别表示当前候选牛种的计数和候选牛种。遍历数组时,如果 count 为0,表示当前没有候选牛种,我们将当前牛种设置为候选牛种,并将 count 设置为1。如果当前牛种与候选牛种相同,则将 count 加1;否则将 ...
2023-07-18
0
375
题解 | #草原上的牛群#
一、知识点:数组、双指针二、文字分析:使用两个指针 i 和 j 分别指向当前要处理的元素和下一个要放置元素的位置。在遍历数组时,如果当前元素 nums[i] 与上一个元素不相同,就将其放置到 nums[j] 的位置,并将 j 的值加1。最后返回 j 作为不同位置牛群的数量。复杂度分析:该算法只需要对...
2023-07-18
1
357
题解 | #草原牛群集合#
一、知识点:数组、双指针二、文字分析:使用两个指针 i 和 j 分别指向当前要处理的元素和下一个要放置元素的位置。在遍历数组时,如果当前元素 nums[i] 不等于 val,就将其放置到 nums[j] 的位置,并将 j 的值加1。这样,遍历结束后,j 就指向了移动后的数组的长度。因此时间复杂度为 ...
2023-07-18
3
404
题解 | #牛群的数量计算#
一、知识点:二进制运算二、文字分析:代码的时间复杂度为O(log(n)),空间复杂度为O(log(n))。在这个算法中,我们使用了一个辅助方法addBits(int bit1, int bit2, int carry)来实现两个二进制位的相加操作,而multiply(int n, int a)方法中...
2023-07-18
1
432
题解 | #牛群的编码反转#
一、知识点:二进制运算二、文字分析:使用一个循环来逐位反转二进制数。使用左移和右移操作符来移动位,并使用位与操作符和位或操作符来获取每个位的值并设置到反转后的二进制数中。时间复杂度是O(1),空间复杂度也是O(1)。三、编程语言:java四、正确代码: import java.util.*; p...
2023-07-18
3
379
题解 | #牛群的编码统计#
一、知识点:二进制转换、遍历二、文字分析:代码首先将整数n转换为二进制字符串,并存储在变量binary中。然后,使用变量count来记录0的个数。接下来,代码判断二进制字符串的长度是否小于32。如果小于32,则说明二进制字符串不足32位,需要在开头补0,以保持32位长度。这个补0的过程通过构建一个补...
2023-07-18
1
336
首页
上一页
1
2
3
4
5
6
7
8
下一页
末页