- 博客(22)
- 收藏
- 关注
原创 leecode 75-22 python 确定两个字符串是否接近
不管执行多少次操作,都无法从 word1 得到 word2 ,反之亦然。如果可以使用以下操作从一个字符串得到另一个字符串,则认为两个字符串。【1】满足两个条件即可,1.出现的字母都相同,2.出现的字母次数相同。你可以根据需要对任意一个字符串多次使用这两种操作。2 次操作从 word1 获得 word2。3 次操作从 word1 获得 word2。执行操作 1:"ca。
2024-09-30 01:06:54 350
原创 leecode 75-21 python 独一无二的出现次数
这题其实很简单,将列表转为计数的哈希表,然后将哈希表的values取出来,看看set后的长度和原长度是否相同。在该数组中,1 出现了 3 次,2 出现了 2 次,3 只出现了 1 次。没有两个数的出现次数相同。【1】喜欢刷简单题,因为我脑子不好使,简单题可以增强我对代码的自信程度。,如果每个数的出现次数都是独一无二的,就返回。
2024-09-30 00:48:32 154
原创 leecode 75-20 python 找出两数组的不同
由于 nums1[2] == nums1[3] ,二者的值只需要在 answer[0] 中出现一次,故 answer[0] = [3]。对于 nums1 ,nums1[1] = 2 出现在 nums2 中下标 0 处,然而 nums1[0] = 1 和 nums1[2] = 3 没有出现在 nums2 中。对于 nums2 ,nums2[0] = 2 出现在 nums1 中下标 1 处,然而 nums2[1] = 4 和 nums2[2] = 6 没有出现在 nums2 中。也正是这样,我的面试顺利凉了。
2024-09-30 00:24:16 655
原创 leecode 75-19 python 寻找数组的中心下标
【1】我的个人思路是先计算整个列表的值,记录当前位置左侧的和以及减去当前位置数的总和。左侧数之和 sum = nums[0] + nums[1] + nums[2] = 1 + 7 + 3 = 11 ,右侧数之和 sum = nums[4] + nums[5] = 5 + 6 = 11 ,二者相等。右侧数之和 sum = nums[1] + nums[2] = 1 + -1 = 0。是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。如果中心下标位于数组最左端,那么左侧数之和视为。
2024-09-29 23:47:30 221
原创 leecode 75-18 python 找到最高海拔
海拔高度依次为 [0,-4,-7,-9,-10,-6,-3,-1]。【1】没有丝毫的犹豫,遍历列表,逐个相加,比较当前位置高度和最高点大小。海拔高度依次为 [0,-5,-4,1,1,-6]。【2】先开辟一个新的列表空间,将当前位置添加进去,再max这个列表。有一个自行车手打算进行一场公路骑行,这条路线总共由。个不同海拔的点组成。
2024-09-29 23:22:10 242
原创 leecode 75-17 python 删掉一个元素以后全为 1 的最长子数组
删掉位置 4 的数字后,[0,1,1,1,1,1,0,1] 的最长全 1 子数组为 [1,1,1,1,1]。和上一题的方法2一样,只不过这里的k是1,由于我们要删掉一个数,所以返回是j-i而不是j-i+1。请你在删掉元素的结果数组中,返回最长的且只包含 1 的非空子数组的长度。删掉位置 2 的数后,[1,1,1] 包含 3 个 1。【1】有了上一题的铺垫,我悟了,并写下了此题。如果不存在这样的子数组,请返回 0。,你需要从中删掉一个元素。
2024-09-25 00:35:20 158
原创 leecode 75-16 python 最大连续1的个数 III
step2:关键来了,我们每经过一个0,我们将0计数器加一,如果计数已经大于k了,那么我们开始移动左指针缩小窗口,直到0的数量在我们的范围内,然后继续。主要改动为step2,如果计数已经超过最大数量,那么我们移动i,如果i位置的数为0,那么k再加一。如此下去,我们滑到最后得到的就是最大窗口。粗体数字从 0 翻转到 1,最长的子数组长度为 10。step1:计数器,一个指针指向最左端,一个指针遍历。粗体数字从 0 翻转到 1,最长的子数组长度为 6。
2024-09-25 00:32:21 314
原创 leecode 75-15 python 定长子串中元音的最大数目
【1】这题和上一题一样,固定的窗口,不变的配方。有了上一题的教训,我这次在滑动过程中老老实实减去了滑掉的元音数,加上了新增的元音数。"lee"、"eet" 和 "ode" 都包含 2 个元音字母。任意长度为 2 的子字符串都包含 2 个元音字母。的单个子字符串中可能包含的最大元音字母数。子字符串 "iii" 包含 3 个元音字母。字符串 s 中不含任何元音字母。
2024-09-25 00:12:49 202
原创 leecode 75-14 python 子数组最大平均数 I
结果滑出问题了,我每滑一步,就计算一次sum,最后有一个超级长的示例给我干超时了。/(ㄒoㄒ)/~~ 注释掉的就是我的超时代码了。【1】滑动窗口来啦,这题固定的窗口大小,先算前四个数的和,完了滑滑滑~滑到最后。正确做法应该是:每移动一步,减去第一个数,加上后边新增的数,这样就不会超时了。望大佬们给老弟瞅瞅,有更好的办法,欢迎大家交流。的连续子数组,并输出该最大平均数。的答案都将被视为正确答案。个元素组成的整数数组。请你找出平均数最大且。
2024-09-25 00:07:14 169
原创 leecode 75-13 python K 和数对的最大数目
step2:双指针指向两端,和接雨水那题有点像了,如果两个指针指向的数的和,小于k则左指针右移动,小于则右指针左移,相等则满足条件,两个指针都移动并计数。【1】这道题很明显,如果在乱序情况下,很难通过双指针来解出来,所以我的想法是,先排序,再进行双指针操作。step2:遍历计数字典的key,找到对应k-key的计数,把两者最小的值拿出来计数。【2】写完上边的双指针方法,突然感觉,这题可以用哈希表,于是我来大胆尝试下。- 移出前两个 3 ,之后nums = [1,4,3]的两个整数,并将它们移出数组。
2024-09-25 00:00:17 302
原创 leecode 75-12 python 盛最多水的容器
思想:我们把两个指针指向列表两端,计算当前的面积,假设我们想获得更大的面积,那么我们在移动两个指针的时候,一定是移动比较短的那个,面积才有可能变大。如果移动大的那个,值就一定会变小,你细品。【1】这是一道双指针问题,这道题难度其实不大,但是新手确实有点难想,如果不是leecode给它分到了双指针问题中,我可能也不会一下就想到解题方法。step1:为了方便,也为了函数复用,我们定义一个计算面积的函数。轴共同构成的容器可以容纳最多的水。望各位大佬批评指正。
2024-09-24 23:25:36 235
原创 leecode 75-11 python 判断子序列
【1】此题白给,虽然不是像上两题一样在原list上改动的题,但是思路是相同的,我们用一个指针指向s的第一个位置,另一个指针遍历t字符串。如果指向s的字符在遍历t的过程中全部出现,则为True,反之则为false。如果有大量输入的 S,称作 S1, S2, ... , Sk 其中 k >= 10亿,你需要依次检查它们是否为 T 的子序列。字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。我在第一次提交的时候遇到了 s为空的情况,此步骤为了避免该类情况的发生。
2024-09-24 01:33:07 211
原创 leecode 75-10 python 移动零
【1】官方给这题归类为双指针,和上一题 压缩字符串 类似,比那题简单很多。一个指针遍历,一个指针慢慢调整列表,需要注意的是,最后要把慢指针后的所有元素归零。简单总结下刷到现在的双指针心得,什么时候用双指针呢?移动到数组的末尾,同时保持非零元素的相对顺序。,必须在不复制数组的情况下原地对数组进行操作。1.需要在原来列表的基础上进行修改的。2.将字符串、列表两端有翻转操作的。其他的等刷完双指针模块再总结啦。,编写一个函数将所有。望各位大佬批评指正。
2024-09-24 01:23:08 136
原创 leecode 75-9 python 压缩字符串
【1】由于不能开辟新的空间,我们只能利用两个指针来进行操作,fast指针遍历列表并计数,slow指针指向需要更改的位置,由于大于1计数才会将数字添加,所以根本不用害怕slow指针追上fast指针。返回 6 ,输入数组的前 6 个字符应该是:["a","2","b","2","c","3"]由于字符 "a" 不重复,所以不会被压缩。"aa" 被 "a2" 替代。"bb" 被 "b2" 替代。"ccc" 被 "c3" 替代。返回 4 ,输入数组的前 4 个字符应该是:["a","b","1","2"]。
2024-09-24 01:13:00 279
原创 leecode 75-8 python 递增的三元子序列
3)当前数小于first,那就也一定小于second,将first替换为当前数,让first成为最小值,最难理解的就是这里了,我最初会想,如果是这样的话,【2,4,1,5】这个示例,找到的三个数不就是1,4,5了吗,这怎么能对,但是,稍微想了想,second大于first是一个必然,first是大一点还是小一点都无伤大雅,我们只需找到大于second的数就可以找到结果。三元组 (3, 4, 5) 满足题意,因为 nums[3] == 0 < nums[4] == 4 < nums[5] == 6。
2024-09-24 00:42:24 238
原创 leecode 75-7 python 除自身以外数组的乘积
之中任意元素的全部前缀元素和后缀的乘积都在。突然遇到可能会懵了,多刷多练多想才是决胜之路。【1】看到这题,我是一点思路没有,看了题解。假设列表为 [a1,a2,a3,a4]之外其余各元素的乘积。
2024-09-23 23:50:58 304
原创 leecode 75-6 python 反转字符串中的单词
返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。从效果上看,就是用了自带的reversed函数,减少了代码量,其时间复杂度和【1】相同,都是O(n)。【1】我的想法是用双指针,先将字符串split为列表,左右指针相互交换单词,直到左右指针相遇。如果两个单词间有多余的空格,反转后的字符串需要将单词间的空格减少到仅有一个。step2:左右指针判断当前位置是否为空,直到不为空,两指针指向的位置交换。【4】官方给出了一个双端队列的方法,感觉写法挺麻烦的,但是思想挺不错。
2024-09-23 23:15:28 372
原创 leecode 75-5 python 反转字符串中的元音字母
step2:左指针从左到右找元音,右指针xxxxxxx,判断左指针是否小于右指针,交换左右指针指向的元音字符。【1】涉及左右颠倒,我的第一印象就是双指针,左指针从左向右遍历,右指针从右向左遍历,直到两指针相遇。感觉 i<n 和 j>0 和我的 i<j 比,应该是 i<j 会更节省时间。step1:将字符串转为列表,定义左右指针,以及元音字符。,仅反转字符串中的所有元音字母,并返回结果字符串。,且可能以大小写两种形式出现不止一次。
2024-09-23 22:37:30 203
原创 leecode 75-4 python 种花问题
【2】看了leecode上 灵茶山艾府 大佬的讲解,有一个不用扩展列表的判断方法,而且通过while循环减少了运行时间,其实原理相同,自己手码了一遍。假设有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花不能种植在相邻的地块上,它们会争夺水源,两者都会死去。step2:遍历列表,判断当前位置是否为0,再判断当前位置能否种花,能种则计数加一。【1】我的想法很简单,在能种花的地方都种上,然后计数,最终再与n比较。
2024-09-23 22:07:24 183
原创 leecode 75-3 python 拥有最多糖果的孩子
只有 1 个额外糖果,所以不管额外糖果给谁,只有孩子 1 可以成为拥有糖果最多的孩子。孩子 4,将有 1 + 3 = 4 个糖果,不是孩子中最多的。孩子 1,将有 2 + 3 = 5 个糖果,是孩子中最多的。孩子 2,将有 3 + 3 = 6 个糖果,是孩子中最多的。孩子 3,将有 5 + 3 = 8 个糖果,是孩子中最多的。孩子 5,将有 3 + 3 = 6 个糖果,是孩子中最多的。【1】我笑了,可以直接睡觉了,纯纯白给。个孩子拥有的糖果数目,和一个整数。个孩子之后,他会拥有所有孩子中。
2024-09-11 00:14:55 637
原创 leecode 75-2 python 字符串的最大公因子
【1】暴力求解涌上心头,将短的那个字符串拿出来(我设为d),从长到短遍历这个d,比如d为abc,那么我们会判断abc->ab->a,哪个是最大公因子。为啥我从长到短遍历呢,因为题目问的返回最长字符串,要是问最短,那就从小到大遍历,你细品~step2:从大到小遍历这个短字符串(其实在这里,遍历长的也行,如果它们真是有最大公因子,那么短的那个一定是长的那个的前缀)【2】看了官方的暴力算法,和我写的差不多,但是看了暴力算法的优化,我人麻了。
2024-09-11 00:04:47 308 1
原创 leecode 75-1 交替合并字符串
多个输入iterables的长度不相等的时候,zip会按照最小的长度进行迭代处理,如果需要按照最长的那个进行迭代处理,zip_longest()的方法,就是用于弥补zip()这一短板的。如果一个字符串比另一个字符串长,就将多出来的字母追加到合并后字符串的末尾。【2】看了眼官方解题的方法,其中双指针的方法是比较常用的方法,和我的暴力思路相差不大,但是得设置两个指针。注意,word2 比 word1 长,"rs" 需要追加到合并后字符串的末尾。step3:将长的那个字符串剩余的部分加到返回值中。
2024-09-10 22:45:54 743
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人