2025年5月7日
摘要:
题目描述 思路:双指针 对于符合题目要求的目标字符串,我们可以拥有一种这样的想法。首先,我们想要使倒数k位前置并且正向的顺序不改变,那么我们可以先整体反转,以abcdefg为例,即可得到gfedcba,此时k值要求为2,那么也即要使当前逆转过的倒序序列的前k项反转回来,即0至k-1反转,随后在将之后
阅读全文
posted @ 2025-05-07 21:27
sakura430
阅读(8)
推荐(0)
2025年5月1日
摘要:
题目描述 思路一:双指针 采用双指针的思路,既然是要将单词倒置,那我们索性可以设置两个指针在初始时指向串的尾部,在左指针大于等于0的情况下,我们从右侧不断的重复先过滤空字符后采集单词的操作,最后将采集的新的串返回即可。 代码如下: string reverseWords(string s) { ve
阅读全文
posted @ 2025-05-01 19:33
sakura430
阅读(15)
推荐(0)
2025年4月30日
摘要:
题目描述 思路:双指针 对于本题,我们可以先求解出我们能够完整遍历的2k的次数,随后再处理余下的长度不足2k的部分。在处理的过程中,我们将左右指针置于要遍历范围的两侧,使指针向中间移动,通过临时变量来辅助字符的互换。 代码如下: string reverseStr(string s, int k)
阅读全文
posted @ 2025-04-30 14:42
sakura430
阅读(11)
推荐(0)
2025年4月29日
摘要:
题目描述 思路: 原地倒置即是利用一个临时变量temp,这样做到两个元素的交换,整体比较简单,无论奇偶长度,整体只要循环(length/2)次即可。 代码如下: void reverseString(vector<char>& s) { int len = s.size(); char temp;
阅读全文
posted @ 2025-04-29 09:12
sakura430
阅读(10)
推荐(0)
2025年4月28日
摘要:
题目描述 思路:双指针 四数之和的求解思路本质上与三数之和没什么差别,只不过这一次我们要嵌套两层for循环,而且要注意返回的条件,现在我们的目标是收集四个元素相加和等于target的子数组,所以我们不会再向之前一样固定在第一个加数大于0时返回,而是要考虑的更多。具体的细节可以参考代码。 代码如下:
阅读全文
posted @ 2025-04-28 14:19
sakura430
阅读(16)
推荐(0)
2025年4月27日
摘要:
题目描述 思路:双指针 我们先对nums进行排序,随后设置left与right两个指针跟随for循环遍历的内部迭代。这里的关键就是如何去重。我们在判断时要采取(nums[i]nums[i-1])而非(nums[i]nums[i+1]),因为我们要收集的元组并没有要求内部元素不可以重复,而是要求元组不
阅读全文
posted @ 2025-04-27 14:50
sakura430
阅读(20)
推荐(0)
2025年4月26日
摘要:
题目描述 思路: 本题仍然是要判断我们能否在一个串中找到另一个串的元素,并且本体是允许重复的,所以我们第一时间想到哈希解法。我们创建一个哈希表来收集杂志的字符,然后通过判断这些字符是否满足信中所需要的字符的数目。第一次遍历杂志收集,第二次遍历信判断。 代码如下: bool canConstruct(
阅读全文
posted @ 2025-04-26 17:28
sakura430
阅读(12)
推荐(0)
2025年4月25日
摘要:
题目描述 思路: 这道题我们试图判断一个数是否符合快乐数的定义。我们可以将其转化为,在判断的n在快乐数算法的演变下转化的数值是否等于1,同时排除掉重复的转化值。那么对于唯一元素的收容的数据结构,我们可以使用集合unordered_set。我们通过在循环中判断sum,并收集sum,最终按照条件的情况返
阅读全文
posted @ 2025-04-25 23:17
sakura430
阅读(14)
推荐(0)
2025年4月22日
摘要:
题目描述 思路:分治+哈希 如果我们采用暴力的解法,则需要嵌套四层for循环,这里我们优化,将四个数组两两分成一组,每次以两层for循环嵌套,我们的目标是要找出a+b+c+d = 0这样的元组的个数,所以在第一组,我们将可能的a+b添加到哈希表中,随后在第二个二层循环里,我们只需判断-(c+d)=
阅读全文
posted @ 2025-04-22 14:12
sakura430
阅读(9)
推荐(0)
2025年4月21日
摘要:
题目描述 思路一:暴力for循环 我们可以通过两层for循环嵌套,遍历所有的元素,使其求和判断是否与target相等来操作。 代码如下 vector<int> twoSum(vector<int>& nums, int target) { int len = nums.size(); vector<
阅读全文
posted @ 2025-04-21 19:48
sakura430
阅读(5)
推荐(0)