
闯关leetcode
文章平均质量分 81
breaksoftware
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
闯关leetcode——3127. Make a Square with the Same Color
我们只要检测一个格子周边是否存在2个同色格子即可判断“否”的场景,其他都是“是”的场景。3的矩阵中,检测是否存在最多只用改变一次颜色,就可以形成一个2。原创 2024-12-31 15:39:50 · 1352 阅读 · 0 评论 -
闯关leetcode——3110. Score of a String
这题就是要统计相邻两个字符之差的绝对值之和。原创 2024-12-31 15:39:33 · 456 阅读 · 0 评论 -
闯关leetcode——3131. Find the Integer Added to Array I
这题是说一个数组中的元素是由另外一个数组中的元素加上(减去)某个数之后得到的,但是数组中元素顺序是乱的。原创 2024-12-31 15:39:22 · 926 阅读 · 0 评论 -
闯关leetcode——3136. Valid Word
解法也很简单,按这些条件把规则写好即可。原创 2024-12-31 15:39:01 · 1229 阅读 · 0 评论 -
闯关leetcode——3146. Permutation Difference between Two Strings
我们借助一个vector将第一个字符串中字符下标进行保存,然后再计算它们和第二个字符串中相同字符的下标差值。这题就是要求出两个相同字符组合、不同顺序的字符串中,相同字符下标差的绝对值之和。原创 2024-12-31 15:38:00 · 1074 阅读 · 0 评论 -
闯关leetcode——3120. Count the Number of Special Characters I
我们的解题思路就是把大小写字符都归到各自的bitset结构中。然后两个bitset取与操作,最后看看有多少位是1.这题就是要在一个字符串中找出,同时出现了大小写字符的个数。原创 2024-12-31 15:37:47 · 449 阅读 · 0 评论 -
闯关leetcode——3142. Check if Grid Satisfies Conditions
这题就是要检测一个二维数组是否符合以下特征:在行上相邻两数字不相等,列上数字相等。我们的方法就是先检测第一列相邻的两个数字是否不等;然后再检测列上的数字相同。原创 2024-12-28 00:30:00 · 688 阅读 · 0 评论 -
闯关leetcode——3184. Count Pairs That Form a Complete Day I
取模得到的其他数字需要和24与其的差组成数字对,比如1要和23,11要和13。但是这类问题,我们可以将其归到24以内来做处理——即对所有数字按24取模。取模得到12的数字说明是12的倍数,它们也可以成为合法的数字对。取模得到0的数字说明是24的倍数,它们可以成为合法的数字对;这题就是求一个数组中,两两之和是24的倍数的数字对的个数。比较容易想到的方法就是两层for循环去计算。原创 2024-12-27 04:00:00 · 987 阅读 · 0 评论 -
闯关leetcode——3168. Minimum Number of Chairs in a Waiting Room
这题就是模拟一个队列,E代表如队列,L代表出队列。然后按照字符串中的EL的信息,计算出这个队列最长时是多长。我们不用使用队列或者栈这样的数据结构,直接使用计数器来做就行了。原创 2024-12-26 21:20:28 · 611 阅读 · 0 评论 -
闯关leetcode——3158. Find the XOR of Numbers Which Appear Twice
因为这题中出现一次的数可能有多个,所以不能直接用异或操作来找出哪些数只出现了一次。这样我们就需要引入一个数据结构(unordered_set)来寻找重复出现的数。这题就是要对一个数组中重复出现两次的数进行异或运算。找到出现两次的数,对其进行异或操作就得到最终结果了。原创 2024-12-24 23:07:28 · 531 阅读 · 0 评论 -
闯关leetcode——3162. Find the Number of Good Pairs I
这题就是要检查nums1中的元素是否可以被nums2中的元素与k的积整除。原创 2024-12-23 21:48:17 · 366 阅读 · 0 评论 -
闯关leetcode——3151. Special Array I
我的思路是先通过第一个元素定性这个数组的奇偶性规律——奇偶、偶奇,然后按位对比一次即可。我并不想每次都检测相邻的两个数,因为这样对比操作相当于增加了一倍。这题就是要检测一个数组中,相邻的两个数是否奇偶性不一致。原创 2024-11-15 00:30:00 · 427 阅读 · 0 评论 -
闯关leetcode——3178. Find the Child Who Has the Ball After K Seconds
可以算出下标移动到最右侧节点(比如下图中的3)后,还要移动几次(假设是m次)。从右向左移动m次,相当于从左边第一个节点(0)向右移动n -1 -m次——这题就是要求在一个长度为n的数组中,沿着一个方向移动下标k次(碰到边界就反向)后,下标所在的位置。我们首先将一个链表想象成一个环状(如下图)。可以得出移动k次后,会落到哪个元素上。如果落在绿色节点上,则需要做个计算。如果落在蓝色节点上,则直接返回。原创 2024-11-14 22:00:00 · 996 阅读 · 0 评论 -
闯关leetcode——3174. Clear Digits
我们可以遍历这个字符串,将其非数字字符保存到新的字符串中;一旦遇到数字,则再从新的字符串中去除最后一个字符。这题就是要从一个字符串中去除数字以及紧挨着它左侧的第一个非数字字符。要将这个逻辑一直执行到所有数字去除掉。原创 2024-11-12 09:11:30 · 638 阅读 · 0 评论 -
闯关leetcode——3210. Find the Encrypted String
这题就是要求要找一定规则,将字符按一定规则重新排列。逻辑也很简单,只要按照规则去做就行了。可以优化的点是:保存结果的string在初始化时就分配好内存,然后逐位修改。这样就可以避免字符串不停扩展内存。原创 2024-11-12 09:11:14 · 443 阅读 · 0 评论 -
闯关leetcode——3206. Alternating Groups I
这题就是要求两个相同颜色夹一个其他颜色的组合个数。这题唯一需要注意的就是使用vector的下标表达环形结构。原创 2024-11-11 19:43:06 · 525 阅读 · 0 评论 -
闯关leetcode——202. Happy Number
这题要求Happy Number。它符合一种规律:迭代计算10进制数字每位平方的和,最终得到数字1。如果不是Happy Numer,那么计算过程中一定会出现某种循环。这样我们可以通过set结构来做校验。原创 2024-11-11 19:42:33 · 665 阅读 · 0 评论 -
闯关leetcode——3194. Minimum Average of Smallest and Largest Elements
这题就是要从一个数组中不停去除最大最小数,算出它们的均值,然后取出这些均值中最小的均值并返回。我们设计两个堆:大顶堆和小顶堆,然后不停取出它们的top值。这样取出的就是最大数和最小数。这种不停取出并去除最大最小数的问题,可以考虑使用优先队列。原创 2024-11-09 00:30:00 · 575 阅读 · 0 评论 -
闯关leetcode——3190. Find Minimum Operations to Make All Elements Divisible by Three
这题就是要对数组中的数,通过凑数(加法或者减法)的方式,让其可以被3整除。但是要计算出所凑数字最小的值。比如4这个数,可以通过+2变成6从而被3整除;也可以通过-1变成3从而能被3整除。但是凑的数字1是最小的,所以应该采用-1的方案。其实这题只要判断该数是否可以被3整除就行了。因为所有要凑2的数字,都可以通过反向凑1来达到题目要求。于是我们只要统计数组中不能被3整除的数字即可。原创 2024-11-09 00:15:00 · 283 阅读 · 0 评论 -
闯关leetcode——3226. Number of Bit Changes to Make Two Integers Equal
由于不能将0转成1,所以我们将异或结果与无符号处理后的k进行与操作。如果两数在二进制层面有某位都为1,则说明k需要将该位从0变成1才能变成n,这就违背题目要求,于是返回-1。这题就是要求将n转成k,转换的方法是将二进制中的1转成0,但是不能把0转换成1。对于通过检测的,我们只要计算异或结果中的1的个数就可以知道需要变换几次。我们首先可以通过异或操作获知哪些位需要改变。原创 2024-11-08 00:30:00 · 889 阅读 · 0 评论 -
闯关leetcode——3222. Find the Winning Player in Coin Game
这题就是要求每次从(x,y)上减去(1,4),求最多能减少几次,并要保证最后x,y都要大于等于0?然后我们可以通过次数来判断最终是Alice是最后一次,还是Bob是最后一次。原创 2024-11-08 00:15:00 · 865 阅读 · 0 评论 -
闯关leetcode——3232. Find if Digit Game Can Be Won
这题就是要对比小于10的数之后是否和大于10的数之和是否相等,解法也就是追位分类并相加,然后对比。原创 2024-11-07 00:30:00 · 959 阅读 · 0 评论 -
闯关leetcode——3248. Snake in Matrix
这题就是贪吃蛇操作类问题。以左上角为起始点,根据输入的方向,计算最终落到哪个点上。这题没有太多技巧性,只要把操作翻译成相关运算即可。原创 2024-11-07 00:15:00 · 885 阅读 · 0 评论 -
闯关leetcode——3274. Check if Two Chessboard Squares Have the Same Color
仔细观察后,会发现这题非常简单。相差为2的两列格子结构相同,相差为2的两行格子结构也相同。这样只要列号的差,行号的差,它们之和为偶数,那么它们颜色就想同,否则不同。这题就是要对比棋盘中两个格子颜色是否相同。原创 2024-11-06 00:30:00 · 672 阅读 · 0 评论 -
闯关leetcode——3264. Final Array State After K Multiplication Operations I
在C++的标准库中,priority_queue是堆的思路实现的,但是它是大顶堆。这题是要从一个数组中,找到最小的那个数(入股相同大小,则取第一个最小的数),然后乘以multiplier并放会数组中。它的返回值正好符合题目的要求——如果同样小,返回第一个。一种是按照上述逻辑,使用标准库中的方法,找到最小数的下标,然后修改它。我们将最小的数抛出,然后修改完后再放入堆中,这个时候堆会自动做调整。pair类型的比较也正好符合题目的要求——如果同样小,返回第一个。然后我们构建小顶堆,这样最小的数就位于顶部。原创 2024-11-06 00:15:00 · 1068 阅读 · 0 评论 -
闯关leetcode——3280. Convert Date to Binary
这题就是要将一个10进制表示的日期类型字符串转换成一个2进制表示的日期类型字符串。这题有很强的条件限定,比如:总长度一定是10,下标4和7的位置的字符一定是“-”。我们可以充分利用这些条件来简化代码。原创 2024-11-05 04:15:00 · 998 阅读 · 0 评论 -
闯关leetcode——3285. Find Indices of Stable Mountains
这题就是要记录一个数组中,比某个数大的下一个数的下标。这个问题有个边界,即只要遍历到最后一个元素的之前的元素即可。因为判断条件之和前一个元素有关系。原创 2024-11-05 04:15:00 · 944 阅读 · 0 评论 -
闯关leetcode——3289. The Two Sneaky Numbers of Digitville
这题就是要在一个数组中找到重复的数。方法就是使用一个set结构来做去重。原创 2024-11-04 23:35:44 · 1340 阅读 · 0 评论 -
闯关leetcode——3270. Find the Key of the Numbers
这题就是要求出三个10进制数的每位最小数字,然后组成一个新的数。方法就是从后向前,获取最后一位最小的数字。然后再让每个数字除以10,以让更高的位置的数字变成最后一位数字。原创 2024-11-04 23:35:32 · 944 阅读 · 0 评论 -
闯关leetcode——257. Binary Tree Paths
我们需要先清晰定义“最末级节点”,即:没有左子树和右子树。然后我们就可以依据这个条件,将符合这样条件的节点路径给保存起来。整棵树的遍历可以使用先序遍历。这题就是要打印出从根节点到最末级节点的路径。原创 2024-11-03 20:00:49 · 289 阅读 · 0 评论 -
闯关leetcode——242. Valid Anagram
这题就是要检验两个字符串中是否包含相同的字母和个数。我们可以遍历第一个字符串,统计每个字符出现的次数。然后遍历第二个字符串,逐个减少对应字符出现的次数。如果最终每个字符数都是0,则表示它们符合检测。原创 2024-11-03 20:00:22 · 474 阅读 · 0 评论 -
闯关leetcode——234. Palindrome Linked List
一种简单的办法就是使用不同速度的指针向后探寻——一个一次向后移动一个元素,一个一次向后移动两个元素。这样快的那个指针会先到链表末尾,而慢的那个指针则会找到“中间”附近的位置。因为链表的元素数量可能是奇数,也可能是偶数。如下图所示,如果是奇数,慢指针将指向“中间”的前一个元素;如果是偶数,慢指针指向的是回文左半边的最后一个元素。不管慢指针指向的是哪种情况,我们都已让其下一个元素(含)之后的所有元素反转,然后从链表头部开始对比。只要一个链表遍历结束后,仍然没有出现不同值的元素,则可以认为是回文数。原创 2024-11-04 00:30:00 · 989 阅读 · 0 评论 -
闯关leetcode——232. Implement Queue using Stacks
它要求使用两个栈表达出队列的操作。原创 2024-10-30 00:15:00 · 771 阅读 · 0 评论 -
闯关leetcode——231. Power of Two
如果它大于0,则需要它的二进制中(除了标志位)只能有一个1,比如2的二进制是0x10、4的二进制是0x100、8的二进制是0x1000。检测只有1个1的最简单方法是n&(n-1)等于0。如果它小于或者等于0,则它一定不是2的幂次方;这题就是要检测一个数是否是2的幂次方。对这个数,我们要拆分来看。原创 2024-11-01 00:30:00 · 621 阅读 · 0 评论 -
闯关leetcode——228. Summary Ranges
这题就是要将一个从小到大排序的数组,使用一组区间表示。孤立的区间只记录孤立的值,长度超过1的区间使用“起始值->结束值”的方式表示。解题思路就是记录起始值后,向后寻找连续的最终值。根据区间中元素个数决定表达方式。原创 2024-10-31 00:15:00 · 888 阅读 · 0 评论 -
闯关leetcode——226. Invert Binary Tree
这题就是要对树进行翻转,即左子树变成右子树、右子树变成左子树。解法也很简单,就是使用递归思路,交换左右子树。原创 2024-10-29 00:15:00 · 605 阅读 · 0 评论 -
闯关leetcode——222. Count Complete Tree Nodes
一棵深度为k的有n个结点的二叉树,对树中的结点按从上至下、从左到右的顺序进行编号,如果编号为i(1≤i≤n)的结点与满二叉树中编号为i的结点在二叉树中的位置相同,则这棵二叉树称为完全二叉树。假设完全二叉树是h深度,则其h-1深度层是满二叉树。h层元素全部靠左侧分布,即不存在“只有右节点,而无左节点”的情况。我们的解题思路就是:先找到满二叉树层的深度(不停遍历右子树),然后统计最后一层叶子节点数(先序遍历)。除最后一层无任何子节点外,每一层上的所有结点都有两个子结点的二叉树。完全二叉树是由满二叉树发展而来。原创 2024-10-28 00:00:00 · 803 阅读 · 0 评论 -
闯关leetcode——225. Implement Stack using Queues
这题就是要求使用两个队列模拟栈的操作。原创 2024-10-28 00:15:00 · 642 阅读 · 0 评论 -
闯关leetcode——219. Contains Duplicate II
这题的思路就是使用一个unordered_map保存最新出现元素的位置。然后在遇到相等元素的值时,检测它们的距离是否小于或等于k。这题就是要检查是否存在这样的两个元素:值相等,且它们的距离小于等于给定的值。原创 2024-10-26 00:30:00 · 693 阅读 · 0 评论 -
闯关leetcode——217. Contains Duplicate
这题就是要检测一个数组中是否有数字出现了多次(大于等于2次)。原创 2024-11-01 11:29:32 · 287 阅读 · 0 评论