自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(74)
  • 收藏
  • 关注

原创 每日算法-250605

给定一个放有字母和数字的数组,找到最长的子数组,且包含的字母和数字的个数相同。若存在多个最长子数组,返回最靠左的。由于题目要求“若存在多个最长子数组,返回最靠左的”,我们只在第一次遇到前缀和时记录索引,并且在。如果一个子数组中字母和数字的数量相同,那么这个子数组(转换后)的和就为。问题就变成了“找到和为0的最长连续子数组的长度”。的数量相等,那么这个子数组(转换后)的和就为。问题就变成了“找到和为0的最长连续子数组”。的最长连续子数组,并返回该子数组的长度。时才更新,这样自然保证了最靠左的特性。

2025-06-05 21:40:14 861

原创 每日算法-250604

这道题是“田忌赛马”策略的一个应用。题目的目标是找到一个长度至少为 2 的连续子数组,其和是。对应一个空的前缀和,其值为 0),我们预先在。为了处理子数组从索引 0 开始的情况 (即。我们可以使用一个哈希表。

2025-06-04 17:46:35 743

原创 每日算法-250603

今天学习了两道关于子数组和的 LeetCode 题目。

2025-06-03 18:12:10 624

原创 每日算法-250602

今天学习和复习了两道利用前缀和与哈希表解决的子数组问题,特此记录。

2025-06-02 17:49:23 1051

原创 每日算法-250601

记录今天完成的算法题目。

2025-06-01 18:03:55 700

原创 每日算法-250531

今天完成了两道 LeetCode 题目,主要用到了前缀和的思想。

2025-05-31 18:22:44 947

原创 每日算法-250530

记录一下今天完成的LeetCode算法题目,包含思路、解题过程、复杂度分析和代码实现。题目。

2025-05-30 19:08:58 1032

原创 每日算法-250529

题目。

2025-05-29 18:30:33 850

原创 每日算法-250527

虽然可以通过“总数对 - 好数对”来计算,但我们也可以直接统计“坏数对”。直接统计“坏数对”可能比较复杂,我们可以考虑其补集——“好数对”。那么,“好数对”的条件就变成了。的范围,所以计算时需要使用。我们可以遍历所有可能的。

2025-05-27 19:17:03 1021

原创 每日算法-250526

今天记录两道完成的算法题,分享一下解题思路和代码。设计一个算法,找出数组中两数之和为指定值的所有整数对。一个数只能属于一个数对。

2025-05-26 22:36:19 720

原创 每日算法-250523

的第一个数字必然落在 1-9 之间。因此,我们可以用一个大小为 10 的数组。这是第二次写这道题,写的还不错,基本上掌握了,就不再多说了,详细题解见。很久之前的一道题目了,现在再写已经算是掌握了,也不再多说了,详细题解见。的索引)出现的数字中,其首位数字分别是 1-9 的各有几个。的最后一个数字互质。

2025-05-23 17:33:32 851

原创 每日算法-250522

今天主要解决了两道 LeetCode 题目,记录一下解题思路和代码。

2025-05-22 18:13:32 640

原创 每日算法-250521

大家好!这是我今天的算法练习记录,分享四道 LeetCode 题目的解题思路和代码。希望能对大家有所帮助!

2025-05-21 17:46:08 897

原创 每日算法-250515

今天我完成了以下三道 LeetCode 算法题,特此记录解题思路与代码。

2025-05-15 22:43:01 1029

原创 每日算法-250514

今天记录三道 LeetCode 算法题的解题思路和代码。

2025-05-14 17:43:54 750

原创 每日算法-250513

记录今天学习的算法题解。

2025-05-13 13:55:36 1094

原创 每日算法-250512

一个处理器完成其分配的任务的时间是它的冷却时间加上它处理的所有任务中最耗时的那个任务所需的时间。为了最小化这个最大完成时间,我们应该将最耗时的任务分配给冷却时间最短的处理器。具体来说,我们将冷却时间最短的处理器分配任务中耗时最长的 4 个,第二短的处理器分配次长的 4 个,以此类推。中最慢的 4 个任务中的一个配对。为了使该处理器完成时间最小,它完成的时间取决于它自身的冷却时间和它处理的 4 个任务中最慢的一个。注意:由于学生可以任意组队,我们不需要关心具体的成绩值,只要有足够的学生数量即可。

2025-05-12 17:34:11 1044

原创 每日算法-250511

记录一下今天刷的几道LeetCode题目,主要是关于贪心算法和数组处理。题目。

2025-05-11 17:42:38 913

原创 每日算法-250510

的二进制表示中,最低位的那个 ‘1’ 以及它之后的所有 ‘0’ 组成的数。核心思想是:当遇到一只仓鼠时,如何放置食物桶才能最有效地利用这个桶。每次操作我们可以选择加上或减去一个2的幂。值已经包含了将这个最终的2的幂减到0的那次操作。或将其转化为更容易处理的形式(更接近2的幂)。值本身就是一个2的幂,对应题目中可以操作的数。我们的目标是用最少的食物桶喂饱所有仓鼠。这个问题可以通过分析数字的二进制表示,并采用。初始就是2的幂,循环不进入,直接返回。不是2的幂,进入循环,每执行一次。成为2的幂或0时,循环终止。

2025-05-10 17:58:59 1027

原创 每日算法-250507

这种贪心策略的核心在于,每当一个 ‘0’ 出现在活动的 ‘1’ 序列之后,并且这个 ‘0’ 之后还有 ‘1’(表明当前的 ‘1’ 序列尚未到达最终位置),或者这个 ‘0’ 本身就是字符串的末尾(所有 ‘1’ 都必须移动到它之后),那么所有这些活动的 ‘1’ 都必须进行一次操作。题目的操作定义为:选择一个 ‘1’ 并将其移动到字符串的“最右端”(可以理解为所有 ‘0’ 之后,与其他 ‘1’ 一起形成连续的 ‘1’ 块)。时,存在的那个邻居成为较小值,从而正确计算边界元素成为谷所需的操作数。

2025-05-07 18:13:59 1011

原创 每日算法-250506

今天记录了三道算法题的解题过程和思路,分享给大家。题目。

2025-05-06 22:51:44 802

原创 每日算法-250504

记录今天解决的几道 LeetCode 算法题。

2025-05-04 17:52:19 1074

原创 每日算法-250502

记录一下今天刷的几道 LeetCode 算法题。

2025-05-02 23:10:52 815

原创 每日算法-250430

记录下今天解决的两道题目。

2025-04-30 17:35:42 1049

原创 每日算法-250429

大家好!这是今天的 LeetCode 刷题记录,主要涉及几道可以使用贪心策略解决的问题。

2025-04-29 22:37:04 1046

原创 每日算法-250428

记录今天完成的几道 LeetCode 算法题。

2025-04-28 17:50:52 1051

原创 每日算法-250427

优惠是“买二送一”,我们可以免费获得一组三个糖果中最便宜的那个。为了最大化优惠力度,我们应该让免费赠送的糖果尽可能昂贵。可以证明,这种配对方式(即排序后将相邻元素配对)可以得到最大的。为了使不同元素的数量尽可能多,我们希望相邻的元素尽可能不同。为了让总和最大化,我们应该尽可能地让每一对中的较小数。目标是经过操作后,数组中不同元素的数量最大化。个元素都能被分配到不同的值,那么最大不同数就是。直观地想,如果我们不这样配对,例如将。区间内的数,这个区间的大小是。个不同的数,只要可用的范围。

2025-04-27 22:26:27 882

原创 每日算法-250425

记录今天完成的几道 LeetCode 算法题,分享解题思路和代码。

2025-04-25 22:29:59 687

原创 每日算法-250424

记录一下今天解决的两道 LeetCode 题目。

2025-04-24 17:23:52 1063

原创 每日算法-250423

记录今天学习和解决的几道 LeetCode 算法题。

2025-04-23 19:29:35 1059

原创 每日算法-250422

为了最大化我们获得的硬币数,我们应该确保在每次选择中,我们拿到的都是当前可选的三堆里第二大的那一堆。每次选择时,有三堆硬币:最大的一堆会被 Alice 拿走,最小的一堆会被 Bob 拿走,剩下的一堆(也就是第二大的)归我们。贪心策略是显而易见的:我们应该优先选择整个网格中数值最大的那些元素,但同时要遵守每行的提取数量限制。这是第二次写这道题了,写的还不错,就是在处理可以获得的糖果数时没有处理数据可能溢出的问题。,确保我们的索引大于 Bob 的索引,表示还有足够的堆可供分配。个元素,使得它们的总和最大。

2025-04-22 22:34:22 1016

原创 每日算法-250421

记录今天学习的几道 LeetCode 算法题,主要涉及贪心策略。

2025-04-21 17:35:55 1039

原创 每日算法-250420

记录一下今天刷的几道 LeetCode 题目。

2025-04-20 18:01:46 819

原创 每日算法-250419

记录今天完成的LeetCode算法题。

2025-04-19 17:42:20 652

原创 每日算法-250418

题目的核心要求是找到一个子序列,其元素和严格大于未包含在子序列中的元素和。附加条件是,在满足核心要求的子序列中,选择长度最小的;如果长度依然相同,选择元素总和最大的。个元素后,数组中剩余不同整数的最少数目。为了使得剩余的整数种类最少,我们应该优先移除那些出现次数最少的整数。这是一个典型的贪心策略。这是第二次做这道题,思路在之前的博客中有详细记录。的最长子序列,我们应该贪心地选择数值最小的元素。,在前缀和数组中进行二分查找,找到第一个大于。排序,然后计算其前缀和。,则满足条件的最长子序列长度即为。

2025-04-18 20:33:57 871

原创 每日算法-250417

记录今天的算法学习过程,包含三道 LeetCode 题目。

2025-04-17 17:54:55 662

原创 每日算法-250416

贪心算法(Greedy Algorithm)是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而希望导致结果是全局最好或最优的算法策略。核心思想:在问题的每个决策点,都做出当前看起来最佳的选择。一旦做出选择,就不会撤销或改变。希望通过一系列局部最优解,能够最终达到全局最优解。特点:通常实现起来比较简单,时间复杂度较低。贪心策略并不保证能为所有问题找到绝对最优解,但对很多特定问题(如最小生成树、霍夫曼编码、部分背包问题等)非常有效。

2025-04-16 17:36:56 916

原创 每日算法-250415

今天我们来解决两道 LeetCode 上关于在旋转排序数组中寻找最小值的问题。

2025-04-15 22:34:31 1116

原创 每日算法-250414

记录今天学习和解决的两道 LeetCode 算法题,主要涉及二分查找的应用。

2025-04-14 17:56:49 785

原创 每日算法-250413

记录一下今天解决的几道 LeetCode 算法题。

2025-04-13 18:53:29 821

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除