LeetCode腾讯精选练习50——第六天

题目53:最大子序和
给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
题解:

class Solution:
    def maxSubArray(self, nums: List[int]) -> int:
        for i in range(1,len(nums)):
            nums[i] = nums[i] + max(nums[i-1],0)
        return max(nums)

for循环中,从第二项到最后一项,每一项都等于该项加上前一项 or 0的和,因而其中的最大连续和即为新的数组中的最大值
运行结果:
在这里插入图片描述
题目43:字符串相乘
给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。
题解:

class Solution:
    def multiply(self, num1: str, num2: str) -> str:
        res = int(num1)*int(num2)
        return str(res)

运行结果:
在这里插入图片描述
题目46:全排列
给定一个 没有重复 数字的序列,返回其所有可能的全排列。
题解:

class Solution:
    def permute(self, nums: List[int]) -> List[List[int]]:
        from itertools import permutations
        if not nums: return []
        return [list(i) for i in permutations(nums,len(nums))]

运行结果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_44315884/article/details/112758244