找到数组中所有消失的数字
找到数组中所有消失的数字 🎯 问题描述(来源于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...
数组的度
数组的度 🎯 问题描述(来源于LeetCode) 给定一个非空且只包含非负数的整数数组 nums,数组的 度 的定义是指数组里任一元素出现频数的最大值。 你的任务是在 nums 中找到与 nums 拥有相同大小的度的最短连续子数组,返回其长度。 💻 代码实现 12345678910111213141516171819class Solution: def findShortestSubArray(self, nums: List[int]) -> int: info=dict() for i,num in enumerate(nums): if num in info: info[num][0]+=1 info[num][2]=i else: info[num]=[1,i,i] du=minlen=0 for count,left,right in info.values...
每台机器的进程平均运行时间
每台机器的进程平均运行时间 🎯 问题描述(来源于LeetCode) 表: Activity ±---------------±--------+ | Column Name | Type | ±---------------±--------+ | machine_id | int | | process_id | int | | activity_type | enum | | timestamp | float | ±---------------±--------+ 该表展示了一家工厂网站的用户活动。 (machine_id, process_id, activity_type) 是当前表的主键(具有唯一值的列的组合)。 machine_id 是一台机器的ID号。 process_id 是运行在各机器上的进程ID号。 activity_type 是枚举类型 (‘start’, ‘end’)。 timestamp 是浮点类型,代表当前时间(以秒为单位)。 ‘start’ 代表该进程在这台机器上的开始运行时...
错误的集合
错误的集合 🎯 问题描述(来源于LeetCode) 集合 s 包含从 1 到 n 的整数。不幸的是,因为数据错误,导致集合里面某一个数字复制成了集合里面的另外一个数字的值,导致集合 丢失了一个数字 并且 有一个数字重复 。 给定一个数组 nums 代表了该集合发生错误后的结果。 请你找出重复出现的整数,再找到丢失的整数,将它们以数组的形式返回。 💻 代码实现 12345678910111213class Solution: def findErrorNums(self, nums: List[int]) -> List[int]: n=len(nums) x,y=0,0 nums_count=[0]*(n+1) for i in nums : nums_count[i]+=1 for i in range(1,n+1): if nums_count[i]==2: x=i if nums_coun...
顺序栈
顺序栈 基本概念 数据结构的三要素 逻辑结构 线性结构 存储结构 顺序存储 数据的运算 费曼理解 栈就像一个一次只能放或拿一件东西的口袋,你先放进去的只有在后面放进去的拿出来后才能拿出来。 内部实现: 12345define MaxSize 10typedef struct{ ElemType data[MaxSize]; int top}SqStack; 复杂度分析: 初始化栈 123void InitStack(SeStack &S){ S.top=-1;} 复杂度分析 时间复杂度:O(1)O(1)O(1) 空间复杂度:O(1)O(1)O(1) 判断栈空 123456bool StackEmpty(SqStack S){ if(S.top==1) return true; else return false;} 复杂度分析 时间复杂度:O(1)O(1)O(1) 空间复杂度:O(1)O(1)O(1) 进栈(入栈) 123456789bool Push(SqSta...
提莫攻击
提莫攻击 🎯 问题描述(来源于LeetCode) 在《英雄联盟》的世界中,有一个叫 “提莫” 的英雄。他的攻击可以让敌方英雄艾希(编者注:寒冰射手)进入中毒状态。 当提莫攻击艾希,艾希的中毒状态正好持续 duration 秒。 正式地讲,提莫在 t 发起攻击意味着艾希在时间区间 [t, t + duration - 1](含 t 和 t + duration - 1)处于中毒状态。如果提莫在中毒影响结束 前 再次攻击,中毒状态计时器将会 重置 ,在新的攻击之后,中毒影响将会在 duration 秒后结束。 给你一个 非递减 的整数数组 timeSeries ,其中 timeSeries[i] 表示提莫在 timeSeries[i] 秒时对艾希发起攻击,以及一个表示中毒持续时间的整数 duration 。 返回艾希处于中毒状态的 总 秒数。 💻 代码实现 1234567891011121314class Solution: def findPoisonedDuration(self, timeSeries: List[int], duration: int) -&g...















