学生们参加各科测试的次数-LeetCode
学生们参加各科测试的次数 🎯 问题描述(来源于LeetCode) 学生表: Students ±--------------±--------+ | Column Name | Type | ±--------------±--------+ | student_id | int | | student_name | varchar | ±--------------±--------+ 在 SQL 中,主键为 student_id(学生ID)。 该表内的每一行都记录有学校一名学生的信息。 科目表: Subjects ±-------------±--------+ | Column Name | Type | ±-------------±--------+ | subject_name | varchar | ±-------------±--------+ 在 SQL 中,主键为 subject_name(科目名称)。 每一行记录学校的一门科目名称。 考试表: Examinations ±-------------±--------+...
最小操作次数使数组元素相等-LeetCode
最小操作次数使数组元素相等 🎯 问题描述(来源于LeetCode) 给你一个长度为 n 的整数数组,每次操作将会使 n - 1 个元素增加 1 。返回让数组所有元素相等的最小操作次数。 💻 代码实现 初始思路 123456789101112class Solution: def minMoves(self, nums: List[int]) -> int: l=len(nums) acount=0 d=max(nums)-min(nums) while d!=0: d=max(nums)-min(nums) nums.sort() for i in range(l-1): nums[i]+=d acount+=d return acount 优化后 123456789class Solution: def minMoves(self, nums: List[int]) -> int: l=len(nums) acount=0 d=min...
至少有5名直接下属的经理-LeetCode
至少有5名直接下属的经理 🎯 问题描述(来源于LeetCode) 表: Employee ±------------±--------+ | Column Name | Type | ±------------±--------+ | id | int | | name | varchar | | department | varchar | | managerId | int | ±------------±--------+ id 是此表的主键(具有唯一值的列)。 该表的每一行表示雇员的名字、他们的部门和他们的经理的id。 如果managerId为空,则该员工没有经理。 没有员工会成为自己的管理者。 编写一个解决方案,找出至少有五个直接下属的经理。 以 任意顺序 返回结果表。 💻 代码实现 1234567# Write your MySQL query statement belowSELECT t2.nameFROM Employee t1JOIN Employee t2ON t1.managerId=t...
非递减数列-LeetCode
非递减数列 🎯 问题描述(来源于LeetCode) 给你一个长度为 n 的整数数组 nums ,请你判断在 最多 改变 1 个元素的情况下,该数组能否变成一个非递减数列。 我们是这样定义一个非递减数列的: 对于数组中任意的 i (0 <= i <= n-2),总满足 nums[i] <= nums[i + 1]。 💻 代码实现 1234567891011121314class Solution: def checkPossibility(self, nums: List[int]) -> bool: l=len(nums) count=0 for i in range(1,l): if nums[i]<nums[i-1] : count+=1 if i == 1 or nums[i] >= nums[i - 2]: nums[i - 1] = nums[i] ...
顺序队列
顺序队列 基本概念 数据结构的三要素 逻辑结构 线性结构 存储结构 顺序存储 数据的运算 费曼理解 队列就是排队,先进来的就可以先出去 内部实现: 12345define MaxSize 10;typedef struct { ElemType data[MaxSize]; int front,rear;}SqQueue; 复杂度分析: 初始化 1234void InitQueue(SqQueue &Q){ Q.front=0; Q.rear=0;} 判断队列是否为空 123456bool QueueEmpty(SqQueue &Q){ if(Q.front==Q.rear) return true; else return false;} 入队 12345678bool EnQueue(SqQueue &Q,ElemType e){ //边界判断 if(Q.rear-Q.front==MaxSize{ return false; ...
找到数组中所有消失的数字
找到数组中所有消失的数字 🎯 问题描述(来源于LeetCode) 给你一个含 n 个整数的数组 nums ,其中 nums[i] 在区间 [1, n] 内。请你找出所有在 [1, n] 范围内但没有出现在 nums 中的数字,并以数组的形式返回结果。 💻 代码实现 12345678910111213class Solution: def findDisappearedNumbers(self, nums: List[int]) -> List[int]: mp=dict() l=len(nums) a=[] for i in range(1,l+1): mp[i]=0 for i in nums: mp[i]=i for i in range(1,l+1): if mp[i]==0: a.append(i) return a 📊 性能分析 提交结果 运行时间...
数组中重复的数据
数组中重复的数据 🎯 问题描述(来源于LeetCode) 给你一个长度为 n 的整数数组 nums ,其中 nums 的所有整数都在范围 [1, n] 内,且每个整数出现 最多两次 。请你找出所有出现 两次 的整数,并以数组形式返回。 你必须设计并实现一个时间复杂度为 O(n) 且仅使用常量额外空间(不包括存储输出所需的空间)的算法解决此问题。 💻 代码实现 初始思路 1234567891011class Solution: def findDuplicates(self, nums: List[int]) -> List[int]: a=sorted(nums) ans=[] l=len(nums) x=a[0] for i in range(1,l): if a[i]==x: ans.append(x) x=a[i] return ans 但时间复杂度是O(Nlog(N))O(Nlog(N))O(...
缺失的第一个正数
缺失的第一个正数 🎯 问题描述(来源于LeetCode) 给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。 请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。 💻 代码实现 1234567891011class Solution: def firstMissingPositive(self, nums: List[int]) -> int: l=len(nums) for i in range(l): while 1<=nums[i]<=l and nums[i]!=nums[nums[i]-1]: j=nums[i]-1 nums[j],nums[i]=nums[i],nums[j] for i in range(l): if nums[i]!=i+1: return i+1 return l+1 📊 性能分...
三个数的最大乘积
三个数的最大乘积 🎯 问题描述(来源于LeetCode) 给你一个整型数组 nums ,在数组中找出由三个数组成的最大乘积,并输出这个乘积。 💻 代码实现 目标是找到数组中三个数的最大乘积。有两种可能的情况: 三个最大的正数相乘。 两个最小的负数(如果存在)和一个最大的正数相乘。 123456789101112131415161718class Solution: def maximumProduct(self, nums: List[int]) -> int: x1=nums.copy() x2=nums max1 =max(x1) x1.remove(max1) max2=max(x1) x1.remove(max2) max3=max(x1) n1=max1*max2*max3 max4=min(x2) x2.remove(max4) max5=min(x2) n2=max1...
员工奖金
员工奖金 🎯 问题描述(来源于LeetCode) 表:Employee ±------------±--------+ | Column Name | Type | ±------------±--------+ | empId | int | | name | varchar | | supervisor | int | | salary | int | ±------------±--------+ empId 是该表中具有唯一值的列。 该表的每一行都表示员工的 id 和姓名,以及他们经理的 id 和他们的工资。 表:Bonus ±------------±-----+ | Column Name | Type | ±------------±-----+ | empId | int | | bonus | int | ±------------±-----+ empId 是该表具有唯一值的列。 empId 是 Employee 表中 empId 的外键(reference...












