
笔试强训Day48
文章平均质量分 87
记录算法笔试强训48天
循环渐进Forward
学习编程第一步
展开
-
【C++笔试强训】如何成为算法糕手Day11
这样有两个状态的,可以用两个数组来分别表示,并且状态转移方式根据上面的变化也可以很容易的写出。面对这样一个问题——给定一定数量的苹果和桃子,以及两种不同价值组合方式的礼包(一号礼包和二号礼包),目标是最大化所能组成的礼包总价值。然而,在没有更高效的算法可以利用问题特定结构的情况下,枚举法是一个可靠的选择。这种方法的核心思想是尝试所有可能的礼包组合方式,并记录其中总价值最高的组合。:当一号礼包的数量增加到无法再增加(即使用了所有可用的苹果和桃子),或者二号礼包的数量减少到0时,枚举过程结束。原创 2024-10-19 14:42:06 · 725 阅读 · 0 评论 -
【C++笔试强训】如何成为算法糕手Day9
递归的思想,当台阶为一阶时有一种跳法,当台阶为二阶有两种跳法,当台阶为n阶时,可以从最后一步来考虑,如果最后一步跳一阶,前面有f(n−1)种跳法,一道简单的模拟题,有很多位数的数字可以看作字符串,将图画出来发现,当位数只有6(其中一种情况)位时都好会放在字符串结尾,因此需要限制。第二种找出顺子的规律,因题目限制顺子数仅为5个,因此顺子中最大数与最小数相减不可能大于4,再进行分类讨论防止出现相同的数字。如果最后一步跳两阶的话,前面有f(n−2)种跳法.f(0)=1 (0阶台阶有1种跳法,0阶乘=1)原创 2024-10-16 23:40:50 · 452 阅读 · 0 评论 -
【C++笔试强训】如何成为算法糕手Day4
学习编程就得循环渐进,扎实基础,勿在浮沙筑高台。原创 2024-09-25 23:56:53 · 1007 阅读 · 0 评论 -
【C++笔试强训】如何成为算法糕手Day6
学习编程就得循环渐进,扎实基础,勿在浮沙筑高台。原创 2024-09-28 14:00:32 · 1022 阅读 · 0 评论 -
【C++笔试强训】如何成为算法糕手Day5
这是一道简单的模拟题,我们要找出三个字符(y、o、u)中最少的那个字符的数量,这个数量n表示最多能组成多少个"you"。然后,我们计算o字符的总数减去n,得到剩余的o字符数量。如果剩余的o字符少于2个,那么就不需要进一步操作。如果剩余的o字符数量是2个或更多,我们可以在结果上加1(对于2个o),加2(对于3个o),以此类推。最终的结果是n加上剩余o字符数量减去1。原创 2024-09-26 23:28:48 · 838 阅读 · 0 评论 -
【C++笔试强训】如何成为算法糕手Day1
已知不相同的数不超过10000个,现在需要统计这些自然数各自出现的次数,并按照自然数从小到大的顺序输出统计结果。如果两个数组的当前元素不相等,那么我们比较这两个元素的大小。将较小元素所在数组的索引向前移动一位,因为在已排序的数组中,如果较小数组中存在与较大元素相等的元素,它必然位于当前较小元素之后。输出m行(m为n个自然数中不相同数的个数),按照自然数从小到大的顺序输出。的最后一个元素与当前相等的元素不一致,我们就将这个相等的元素添加到。的数组,该数组用于存储两个数组共有的交集元素。对应位置的值是否为1。原创 2024-09-23 01:12:11 · 1193 阅读 · 0 评论 -
【C++笔试强训】如何成为算法糕手Day3
。思路:本题有两种解法,一是暴力循环解法,但是时间复杂度会爆炸因此不建议用。二是滑动窗口法。我使用滑动窗口(同向双指针)法解本题。 首先分为四个步骤,一进窗口,二判断值是否满足,三更新结果,四出窗口。一:设置right右指针先进行移动,配合left左指针进行窗口判断。二:利用sum数组判断数组内数值是否超过n。三:当left+right长度小于retlen长度时更新结果四:sum-=left出窗口原创 2024-09-25 00:47:32 · 670 阅读 · 0 评论 -
【C++笔试强训】如何成为算法糕手Day2
这个值是一个十六进制数,转换为十进制后大约是 1061109567,这个值比 int 类型(通常是32位)能表示的最大值(INT_MAX,通常为 2147483647)要小,但足够大,可以用作一个初始的“无穷大”值,在后续的比较中被实际的最小值替换。然而,在大多数情况下,直接使用 INT_MAX(或 std::numeric_limits::max(),如果你想要更明确的类型依赖)是更安全、更清晰的选择。找到字符串2,此时计算的距离是最小的,因为后续的字符串2距离。,表示尚未找到字符串1和字符串2。原创 2024-09-24 12:33:57 · 1199 阅读 · 0 评论