寻找数组的中心下标-LeetCode
寻找数组的中心下标 🎯 问题描述(来源于LeetCode) 描述: 给你一个整数数组 nums ,请计算数组的 中心下标 。 数组 中心下标 是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。 如果中心下标位于数组最左端,那么左侧数之和视为 0 ,因为在下标的左侧不存在元素。这一点对于中心下标位于数组最右端同样适用。 如果数组有多个中心下标,应该返回 最靠近左边 的那一个。如果数组不存在中心下标,返回 -1 。 说明: 1 <= nums.length <= 104 -1000 <= nums[i] <= 1000 示例: 示例 1: 123456输入:nums = [1, 7, 3, 6, 5, 6]输出:3解释:中心下标是 3 。左侧数之和 sum = nums[0] + nums[1] + nums[2] = 1 + 7 + 3 = 11 ,右侧数之和 sum = nums[4] + nums[5] = 5 + 6 = 11 ,二者相等。 示例 2: 1234输入:nums = [1, 2, 3]输出:-1解...
螺旋矩阵-LeetCode
螺旋矩阵 🎯 问题描述(来源于LeetCode) 描述: 给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。 说明: m == matrix.length n == matrix[i].length 1 <= m, n <= 10 -100 <= matrix[i][j] <= 100 示例: 示例 1: 输入:matrix = [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,3,6,9,8,7,4,5] 示例 2: 输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]] 输出:[1,2,3,4,8,12,11,10,9,5,6,7] 💻 解题思路 思路1:四个方向顺序遍历 思路1:代码实现 1234567891011121314151617181920212223242526272829class Solution: def spiralOrder(self, matrix: List[List[int]]) ->...
旋转函数-LeetCode
旋转函数 🎯 问题描述(来源于LeetCode) 描述: 给定一个长度为 n 的整数数组 nums 。 假设 arrk 是数组 nums 顺时针旋转 k 个位置后的数组,我们定义 nums 的 旋转函数 F 为: F(k) = 0 * arrk[0] + 1 * arrk[1] + ... + (n - 1) * arrk[n - 1] 要求: 返回 F(0), F(1), ..., F(n-1)中的最大值 。 生成的测试用例让答案符合 32 位 整数。 说明: n == nums.length 1 <= n <= 105 -100 <= nums[i] <= 100 示例: 示例 1: 输入: nums = [4,3,2,6] 输出: 26 解释: F(0) = (0 * 4) + (1 * 3) + (2 * 2) + (3 * 6) = 0 + 3 + 4 + 18 = 25 F(1) = (0 * 6) + (1 * 4) + (2 * 3) + (3 * 2) = 0 + 4 + 6 + 6 = 16 F(2) = (...
轮转数组-LeetCode
轮转数组 🎯 问题描述(来源于LeetCode) 描述: 给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 要求: 1 Do not return anything, modify nums in-place instead 说明: 1 <= nums.length <= 105 -231 <= nums[i] <= 231 - 1 0 <= k <= 105 示例: 示例 1: 输入: nums = [1,2,3,4,5,6,7], k = 3 输出: [5,6,7,1,2,3,4] 解释: 向右轮转 1 步: [7,1,2,3,4,5,6] 向右轮转 2 步: [6,7,1,2,3,4,5] 向右轮转 3 步: [5,6,7,1,2,3,4] 💻 解题思路 思路1:三次反转 思路1:代码实现 123456789101112131415class Solution: def rotate(self, nums: List[int], k: int) -> None: ...
区间加法II-LeetCode
区间加法II 🎯 问题描述(来源于LeetCode) 描述: 给你一个 m x n 的矩阵 M 和一个操作数组 op 。矩阵初始化时所有的单元格都为 0 。ops[i] = [ai, bi] 意味着当所有的 0 <= x < ai 和 0 <= y < bi 时, M[x][y] 应该加 1。 要求: 在 执行完所有操作后 ,计算并返回 矩阵中最大整数的个数 。 说明: 1 <= m, n <= 4 * 104 0 <= ops.length <= 104 ops[i].length == 2 1 <= ai <= m 1 <= bi <= n 示例: 示例 1: 输入: m = 3, n = 3,ops = [[2,2],[3,3]] 输出: 4 解释: M 中最大的整数是 2, 而且 M 中有4个值为2的元素。因此返回 4。 示例 2: 输入: m = 3, n = 3, ops = [[2,2],[3,3],[3,3],[3,3],[2,2],[3,3],[3,3],[3,3],[...
平均售价-LeetCode
平均售价 🎯 问题描述(来源于LeetCode) 描述: 表:Prices ±--------------±--------+ | Column Name | Type | ±--------------±--------+ | product_id | int | | start_date | date | | end_date | date | | price | int | ±--------------±--------+ (product_id,start_date,end_date) 是 prices 表的主键(具有唯一值的列的组合)。 prices 表的每一行表示的是某个产品在一段时期内的价格。 每个产品的对应时间段是不会重叠的,这也意味着同一个产品的价格时段不会出现交叉。 表:UnitsSold ±--------------±--------+ | Column Name | Type | ±--------------±--------+ | product_id ...
甲板上的战舰-LeetCode
甲板上的战舰 🎯 问题描述(来源于LeetCode) 描述: 给你一个大小为 m x n 的矩阵 board 表示棋盘,其中,每个单元格可以是一艘战舰 'X' 或者是一个空位 '.' 舰队 只能水平或者垂直放置在 board 上。换句话说,舰队只能按 1 x k(1 行,k 列)或 k x 1(k 行,1 列)的形状放置,其中 k 可以是任意大小。两个舰队之间至少有一个水平或垂直的空格分隔 (即没有相邻的舰队)。 要求: 返回在棋盘 board 上放置的 舰队 的数量。 说明: m == board.length n == board[i].length 1 <= m, n <= 200 board[i][j] 是 '.' 或 'X' 示例: 示例 1: 输入:board = [[“X”,“.”,“.”,“X”],[“.”,“.”,“.”,“X”],[“.”,“.”,“.”,“X”]] 输出:2 示例 2: 输入: board = [[“.”]] 输出: 0 💻 解题思路 思路1:找到舰队头部 思路1:代码实现 123456789class S...
项目员工I-LeetCode
项目员工I 🎯 问题描述(来源于LeetCode) 描述: 项目表 Project: ±------------±--------+ | Column Name | Type | ±------------±--------+ | project_id | int | | employee_id | int | ±------------±--------+ 主键为 (project_id, employee_id)。 employee_id 是员工表 Employee 表的外键。 这张表的每一行表示 employee_id 的员工正在 project_id 的项目上工作。 员工表 Employee: ±-----------------±--------+ | Column Name | Type | ±-----------------±--------+ | employee_id | int | | name | varchar | | experience_years | int ...
数组
数组 基本概念 一种线性表数据结构,利用一段连续的内存空间,存储一组相同类型的数据。 数据结构的三要素 逻辑结构 线性结构 存储结构 顺序存储 数据的运算 费曼理解 就是现实生活用到的表格,地址固定、支持随机访问 下标 ii 的元素地址 = 首地址 + ii × 单个元素占用的字节数 内部实现: 1int arr[size]={} 复杂度分析: 元素访问 123456def get_element(nums:list[int],index:int): #边界判定 if 0<= index<=len(nums): return nums[index] else: raise IndexError(f"index超出数组范围") 复杂度分析 时间复杂度:O(1)O(1)O(1) 空间复杂度:O(1)O(1)O(1) 元素查找 12345def find_element(nums:list[int],val:int): for i in range(len(nums)): if nums[i...
有趣的电影-LeetCode
有趣的电影 🎯 问题描述(来源于LeetCode) 表:cinema ±---------------±---------+ | Column Name | Type | ±---------------±---------+ | id | int | | movie | varchar | | description | varchar | | rating | float | ±---------------±---------+ id 是该表的主键(具有唯一值的列)。 每行包含有关电影名称、类型和评级的信息。 评级为 [0,10] 范围内的小数点后 2 位浮点数。 编写解决方案,找出所有影片描述为 非 boring (不无聊) 的并且 id 为奇数 的影片。 返回结果按 rating 降序排列。 💻 代码实现 12345# Write your MySQL query statement belowSELECT t1.id,t1.movie,t1.descriptio...














