摘要: 方法1:原地修改数组 1 ans = [] 2 for num in nums: 3 if nums[abs(num) - 1] < 0: 4 ans.append(abs(num)) 5 nums[abs(num) - 1] *= - 1 6 return ans 方法2:添加偏置量 1 res 阅读全文
posted @ 2022-09-29 16:17 努力中的小菜鸟 阅读(17) 评论(0) 推荐(0)
摘要: 方法1: 1 counter = set(nums) 2 N = len(nums) 3 res = [] 4 for i in range(1,N+1): 5 if i not in counter: 6 res.append(i) 7 return res 方法2:原地修改数组(这个想法有些厉害 阅读全文
posted @ 2022-09-29 15:28 努力中的小菜鸟 阅读(35) 评论(0) 推荐(0)
摘要: 1、找到数组的度 2、找到与nums相同度的最短连续子数组 使用三个字典,left用于记录每个元素在数组中第一次出现的位置,right用于记录每个元素在数组中最后一次出现的位置,counter用于记录每个元素在数组中出现的次数。 1 def findShortestSubArray(nums): 2 阅读全文
posted @ 2022-09-29 14:51 努力中的小菜鸟 阅读(19) 评论(0) 推荐(0)
摘要: n1 = sum(nums) - sum(set(nums)) n2 = sum(range(len(nums)+1)-sum(set(sums)) return [n1,n2] 阅读全文
posted @ 2022-09-29 10:19 努力中的小菜鸟 阅读(16) 评论(0) 推荐(0)
摘要: 有以下几种情况: 1、全是正数 2、全是负数 3、有正有负,则最大乘积既可能是三个最大正数的乘积,也可能是两个最小负数(即绝对值最大)与最大正数的乘积。 这个时候找出数列中最大的三个数和最小的两个数,最后在三个最大的数乘积和第一个最大的数和最小的两个数乘积中进行比较,选择最大的那个。 初始将最大的三 阅读全文
posted @ 2022-09-29 09:42 努力中的小菜鸟 阅读(76) 评论(0) 推荐(0)
摘要: 1 if len(set(nums))>2: 2 newnums=sorted(set(nums)) 3 return newnums[-3] 4 else: 5 return max(set(nums)) 阅读全文
posted @ 2022-09-29 08:44 努力中的小菜鸟 阅读(25) 评论(0) 推荐(0)