Bootstrap

力扣——【小创新点即解法题目汇总】持续更新

1603. 设计停车系统

使用字典解题

1920. 基于排列构建数组

明确题目要求:使用nums数组中的元素充当索引值,再找一个元素,放入ans

1389. 按既定顺序创建目标数组

思路:创建新列表,索引值匹配的放进去,不匹配的,插入进去

2221. 数组的三角和

初次使用递归,个别代码格式需要完善

但是这样,时间复杂度和空间复杂度都为O(n^2)

优化代码如下:while循环也可以重复同一步骤,同时不需要额外数组空间,可以直接在原列表上修改

[递归写法]

class Solution:
    def triangularSum(self, nums: List[int]) -> int:
        n=len(nums)
        return self.dfs(nums,n)
    def dfs(self,nums,n):#nums继承的是上一次的ret
        if n==1:
            return nums[0]
        ret=[]
        for i in range(n-1):
            ret.append((nums[i] + nums[i+1]) % 10)
        return self.dfs(ret,n-1)#需要对返回值做改变

【优化写法】 

from typing import List
class Solution:
    def triangularSum(self, nums: List[int]) -> int:
        n = len(nums)
        while n > 1:
            for i in range(n - 1):
                nums[i] = (nums[i] + nums[i + 1]) % 10
            n -= 1
        return nums[0]

2744. 最大字符串配对数目

for循环嵌套

;