logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

Leetcode(python)——11.盛最多水的容器

在上面的公式中,随着指针的移动,距离必然越来越小,那么我们想要容纳的水量最多,就得想办法提高指针的高度,于是我们在移动双指针时,就应该移动高度较小的那个指针。图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。头尾指针,一个公式:容纳的水量 = 两个指针的距离 * min(两个指针的高度)轴共同构成的容器可以容纳最多的水。找

#leetcode#算法#职场和发展
LeetCode(python)——49.字母异位词分组

计数,互为字母异位词的两个字符串包含的字母相同,故可以将每个字符串中出现的字母次数以字符串的形式表示,作为哈希表的Key值。由于只包含小写字母,故用大小为26的数组即可。对字符串数组中的每个字符串排序,以这个排序作为Key值,当两个字符串的排序相同时,存进同一个列表。给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。在 strs 中没有字符串可以通过重新排列来形成。是

#leetcode#python#java
LeetCode(python)——15.三数之和

先排序,避免重复处理元素;再遍历三元组中的第一个值,第二个和第三个值使用双指针寻找。使用双指针,一头一尾,如果此时寻找的第二个值与前一个第二个值相同,则跳过;如果此时第一个、第二个值和第三个值相加大于0,则移动尾指针;如果此时头尾指针相遇,则直接跳出循环(找完了!如果此时相加等于0,则存入答案输出。不同的三元组是 [-1,0,1] 和 [-1,-1,2]。注意,输出的顺序和三元组的顺序并不重要。答

#leetcode#python#算法
LeetCode(python)——438.找到字符串中所有字母异位词

3.用differ记录s和p的差值(记录count中所有非0数的数量),当differ = 0 时,意味着此时窗口中的字母和p是字母异位词,记录答案。起始索引等于 0 的子串是 "cba", 它是 "abc" 的异位词。起始索引等于 6 的子串是 "bac", 它是 "abc" 的异位词。起始索引等于 0 的子串是 "ab", 它是 "ab" 的异位词。起始索引等于 1 的子串是 "ba", 它是

#leetcode#python#算法
LeetCode(python)——560.和为k的子数组

非常好,那么我们就可以在遍历数组计算每个下标前缀和的时候,计算target = pre[j] - k,如果已经记录的前缀和pre[i] == target,就说明对于pre[j]而言,找到了一个子数组[i....j-1]如果已知每个下标的前缀和,那么[i....j-1]这个子数组的和为k,则意味着pre[j] - pre[i] == k,左右变换一下可以得到:pre[i] = pre[j] - k

#leetcode#python#算法
LeetCode(python)——53.最大子数组的和

3.遍历前缀和,用min_pre记录最小的前缀和的值,用当前的前缀和 - min_pre,用max()更新答案,用min()更新min_pre。,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。再次重申:数组无序——前缀和;数组有序——双指针、滑动窗口。连续子数组 [4,-1,2,1] 的和最大,为 6。2.要求最大的子数组和:即求最大的前缀和之差。是数组中的一个连续部

#leetcode#python#算法
LeetCode(python)——56.合并区间

(2)intervals[i][1] > intervals[i+1][0]时,存在重叠,且合并区间的右端点为两者中较大的值。(1)intervals[i][1] < intervals[i+1][0]时,不可能重叠,直接存进答案。二维数组中,按照数组中第一个元素排序:sort(key = lambda x : x[0])区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].区间 [

#leetcode#算法#职场和发展
LeetCode(python)——238.除自身以外数组的乘积

优化:如果要想在空间复杂度为O(1)的情况下实现,则无需使用前缀数组、后缀数组,直接存进ans。(1)从前往后,遍历数组,对当前的每一个数计算前缀乘积。(2)从后往前,遍历数组,对当前的每一个数计算后缀乘积。之中任意元素的全部前缀元素和后缀的乘积都在。(3)答案 = 前缀乘积 * 后缀乘积。之外其余各元素的乘积。时间复杂度内完成此题。

#leetcode#python#算法
LeetCode(python)——73.矩阵置零

3.优化:先单独处理原数组的第一行、第一列(用bool变量标识是否需要置零),再利用原数组的第一行和第一列存需要置零的行和列——空间复杂度O(1)2.优化:将ans拆分成两个数组:一个存需要置零的行,一个存需要置零的列,分别遍历这两个数组,将原数组置零——空间复杂度O(m + n)1.非常直观的想法:遍历矩阵,用一个ans数组存矩阵中的零存在的位置,再遍历ans,找到对应行、列,置零——空间复杂度

#算法#leetcode#python +1
LeetCode(python)——48.旋转图像

旋转图像,这意味着你需要直接修改输入的二维矩阵。请你将图像顺时针旋转 90 度。转置:对上三角(i < j)每一个元素的行列交换。一个简单神奇的思路,先转置后反转每一行。反转:row.reverse()使用另一个矩阵来旋转图像。

#leetcode#python#算法
    共 33 条
  • 1
  • 2
  • 3
  • 4
  • 请选择