阿里云虚拟主机建站教程,做电脑租赁网站,科技展馆,沈阳网站建设设计报价这里写目录标题 一、628. 三个数的最大乘积二、645. 错误的集合三、747. 至少是其他数字两倍的最大数四、905. 按奇偶排序数组五、922. 按奇偶排序数组 II六、976. 三角形的最大周长 一、628. 三个数的最大乘积
简单 给你一个整型数组 nums #xff0c;在数组中找出由三个数组… 这里写目录标题 一、628. 三个数的最大乘积二、645. 错误的集合三、747. 至少是其他数字两倍的最大数四、905. 按奇偶排序数组五、922. 按奇偶排序数组 II六、976. 三角形的最大周长 一、628. 三个数的最大乘积
简单 给你一个整型数组 nums 在数组中找出由三个数组成的最大乘积并输出这个乘积。
示例 1 输入nums [1,2,3] 输出6
示例 2 输入nums [1,2,3,4] 输出24
示例 3 输入nums [-1,-2,-3] 输出-6
class S628:def func(self, nums):nums.sort()return max(nums[0] * nums[1] * nums[2], nums[-1] * nums[-2] * nums[-3])res S628()
nums [1, 2, 3]
print(res.func(nums))二、645. 错误的集合
简单 集合 s 包含从 1 到 n 的整数。不幸的是因为数据错误导致集合里面某一个数字复制了成了集合里面的另外一个数字的值导致集合 丢失了一个数字 并且 有一个数字重复 。 给定一个数组 nums 代表了集合 S 发生错误后的结果。 请你找出重复出现的整数再找到丢失的整数将它们以数组的形式返回。
示例 1 输入nums [1,2,2,4] 输出[2,3]
示例 2 输入nums [1,1] 输出[1,2]
class S645:def func(self, nums):total sum(range(len(nums) 1))num total - sum(set(nums)) # 3diff total - sum(nums) # 1return [num - diff, num] # [2,3]res S645()
nums [1, 2, 2, 4]
print(res.func(nums))三、747. 至少是其他数字两倍的最大数
简单 给你一个整数数组 nums 其中总是存在 唯一的 一个最大整数 。 请你找出数组中的最大元素并检查它是否 至少是数组中每个其他数字的两倍 。如果是则返回 最大元素的下标 否则返回 -1 。
示例 1 输入nums [3,6,1,0] 输出1 解释6 是最大的整数对于数组中的其他整数6 至少是数组中其他元素的两倍。6 的下标是 1 所以返回 1 。
示例 2 输入nums [1,2,3,4] 输出-1 解释4 没有超过 3 的两倍大所以返回 -1 。
class S747:def func(self, nums):max_value max(nums)if max_value nums[-2] * 2:return nums.index(max_value)return -1res S747()
nums [1, 2, 3, 4]
print(res.func(nums))四、905. 按奇偶排序数组
简单 给你一个整数数组 nums将 nums 中的的所有偶数元素移动到数组的前面后跟所有奇数元素。 返回满足此条件的 任一数组 作为答案。
示例 1 输入nums [3,1,2,4] 输出[2,4,3,1] 解释[4,2,3,1]、[2,4,1,3] 和 [4,2,1,3] 也会被视作正确答案。
示例 2 输入nums [0] 输出[0]
思路双指针
class Solution905:def func(self, nums):i 0for j in range(len(nums)):if nums[j] % 2 0:nums[i], nums[j] nums[j], nums[i]i 1return nums五、922. 按奇偶排序数组 II
简单 给定一个非负整数数组 nums nums 中一半整数是 奇数 一半整数是 偶数 。 对数组进行排序以便当 nums[i] 为奇数时i 也是 奇数 当 nums[i] 为偶数时 i 也是 偶数 。 你可以返回 任何满足上述条件的数组作为答案 。
示例 1 输入nums [4,2,5,7] 输出[4,5,2,7] 解释[4,7,2,5][2,5,4,7][2,7,4,5] 也会被接受。
示例 2 输入nums [2,3] 输出[2,3]
class S922:def funcc(self, nums):i 0j 1while i len(nums) and j len(nums):if nums[i] % 2 0:i 2 # 如果nums[0]为偶数i2elif nums[j] % 2 1:j 2else:nums[i], nums[j] nums[j], nums[i]return numss S922()
nums [4, 2, 5, 7]
print(s.funcc(nums))六、976. 三角形的最大周长
简单 给定由一些正数代表长度组成的数组 nums 返回 由其中三个长度组成的、面积不为零的三角形的最大周长 。如果不能形成任何面积不为零的三角形返回 0。
示例 1 输入nums [2,1,2] 输出5 解释你可以用三个边长组成一个三角形:1 2 2。
示例 2 输入nums [1,2,1,10] 输出0 解释 你不能用边长 1,1,2 来组成三角形。 不能用边长 1,1,10 来构成三角形。 不能用边长 1、2 和 10 来构成三角形。 因为我们不能用任何三条边长来构成一个非零面积的三角形所以我们返回 0。
class Solution:def largestPerimeter(self, nums: List[int]) - int:numss sorted(nums, reverseTrue)print(numss)for i in range(len(numss) - 2):if numss[i] numss[i 1] numss[i 2]:return numss[i] numss[i 1] numss[i 2]return 0res Solution()
nums [1, 2, 1, 10, 2]
print(res.largestPerimeter(nums))