力扣(2024.06.20)

1. 48——旋转图像

给定一个 × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。

你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。

标签:数组,数学,矩阵

代码:

class Solution:
    def rotate(self, matrix: List[List[int]]) -> None:
        """
        Do not return anything, modify matrix in-place instead.
        """
        n = len(matrix)
        for i in range(n // 2):
            for j in range((n + 1) // 2):
                temp = matrix[i][j]
                matrix[i][j] = matrix[n - j - 1][i]
                matrix[n - j - 1][i] = matrix[n - i - 1][n - j - 1]
                matrix[n - i - 1][n - j - 1] = matrix[j][n - i - 1]
                matrix[j][n - i - 1] = temp

2. 49——字母异位词分组

给你一个字符串数组,请你将字母异位词组合在一起。可以按任意顺序返回结果列表。

字母异位词是由重新排列源单词的所有字母得到的一个新单词。

标签:数组,哈希表,字符串,排序

代码:

class Solution:
    def groupAnagrams(self, strs: List[str]) -> List[List[str]]:
        haxi = {}
        res = []
        for st in strs:
            lis = list(st)
            lis.sort()
            st1 = ''.join(lis)
            if st1 not in haxi:
                haxi[st1] = [st]
            else:
                haxi[st1].append(st)
        for key in haxi:
            res.append(haxi[key])
        return res

3. 50——Pow(x, n)

实现 pow(x, n),即计算 x 的整数 n 次幂函数(即 x^n )。

标签:递归,数学(目前不会)

代码:

4. 51——N皇后

按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。给你一个整数 n ,返回所有不同的 n 皇后问题的解决方案。每一种解法包含一个不同的 n 皇后问题的棋子放置方案,该方案中 'Q' 和 '.' 分别代表了皇后和空位。

标签:数组,回溯(目前不会)

代码:

5. 52——N皇后2

n 皇后问题研究的是如何将 n 个皇后放置在 n × n 的棋盘上,并且使皇后彼此之间不能相互攻击。给你一个整数 n ,返回 n 皇后问题不同的解决方案的数量。

标签:回溯(目前不会)

代码:

6. 53——最大子数组和

给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组是数组中的一个连续部分。

标签:数组,动态规划

代码:

class Solution:
    def maxSubArray(self, nums: List[int]) -> int:
        lis = []
        sum = 0
        for i in range(len(nums)):
            if sum > 0:
                sum = sum + nums[i]
            else:
                sum = nums[i]
            lis.append(sum)
        return max(lis)

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值