数组的度
数组的度 🎯 问题描述(来源于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...
最大连续1的个数
最大连续1的个数 🎯 问题描述(来源于LeetCode) 1给定一个二进制数组nums, 计算其中最大连续1的个数。 💻 代码实现 12345678910111213class Solution: def findMaxConsecutiveOnes(self, nums: List[int]) -> int: a=[] count=0 for i in range(len(nums)): if nums[i]==1: count+=1 else: a.append(count) count=0 if i==len(nums)-1: a.append(count) return max(a) 📊 性能分析 提交结果 运行时间:23ms击败51.73% 内存消耗:19.95MB击败15.16% 复杂度验证 ...
第三大的数
第三大的数 🎯 问题描述(来源于LeetCode) 给你一个非空数组,返回此数组中 第三大的数 。如果不存在,则返回数组中最大的数。 💻 代码实现 123456789101112131415161718class Solution: def thirdMax(self, nums: List[int]) -> int: max2=max(nums) max1=max(nums) if len(nums)<3: return max1 pid=0 while 1 : nums.remove(max1) if pid ==2 or len(nums)==0: break if max1!=max(nums): pid+=1 max1=max(nums) if pid<2: ...
12.3日常
📖 阅读与思考 今日阅读《社会心理学》 感悟与联想: 补充了帮助行为的概念卡 增加了冲突与和解的概念卡 今天结束了《社会心理学》的阅读,在后续的社会心理学运用实例中,很多都需要慢慢感悟。这本书在我身上留下的是一种瞬间。在那个瞬间,我突然理解了自己行为的真正原因,脱离了情景对我的干扰,然后突然觉得本不应该这样的,然后心情就平和下来了 💻 学习与代码 课程/领域: 习概课堂展示资料整理 实践/实验: LeetCode 数字1的个数 LeetCode 统计各位数字都不同的数字个数 代码/项目: 🎮 生活与观察 日常小事: 无
冲突与和解
冲突与和解 冲突 知觉到的行动或目标的不协调 特点: 不论处于冲突中的人们能否正确地认识双方的行为,他们总是认为一方的获益就是另一方的损失。 缺乏冲突的关系或组织可能是死气沉沉的。冲突体现了参与、承诺和关心。如果能够被理解和解决,冲突可以促进人际关系的变化和发展 引发冲突的原因 社会困境 囚徒困境 地方检察官使用不同的策略分别审问两个犯罪嫌疑人。他们合伙犯罪,但是检察官掌握的证据只能判他们很轻的罪。因此检察官为了使嫌疑犯愿意单独承认自己的罪行,设置了一种鼓励办法:如果一个嫌疑犯认罪而另一个没有,认罪的嫌疑犯将赢得豁免(并利用他的供词使另一名罪犯得到最严厉的判决)。如果两个嫌疑犯都认罪,他们都能得到中等程度的判决。如果两个人都不认罪,他们都会得到较轻的判决。 公地悲剧 公地”包括了空气、水、鱼、饼干或是其他任何被共享但是有限的资源。当所有人都适度地利用资源时,资源自行再生的速度可以与资源被消耗的速度相匹配。植被能够生长,鱼能够繁衍生息,饼干罐也会被重新填满。而一旦对资源的利用超过限度,公地悲剧就会发生 特征 基本归因错误:将自己的行为解释外界压力 动机...
数字1的个数
数字1的个数 🎯 问题描述(来源于LeetCode) 1给定一个整数 n,计算所有小于等于 n 的非负整数中数字1出现的个数。 💻 代码实现 初始思路 123456789class Solution: def countDigitOne(self, n: int) -> int: a=0 b=0 for i in range(1,n+1): num=str(i).count("1") b = num+a a = b return b 但由于时间复杂度O(Nlog(N))O(Nlog(N))O(Nlog(N))在10910^9109附近时过大,所以进行优化。优化思路在改进对当前数字进行1的计数。由字符串统计变为按位统计: 具体方法 设当前考察的位为第 k 位(从个位开始,k=0,1,2…),该位的权值 base = 10^k。对于整数 n,定义: high = n // (base * 10) (高位数字) ...














