专门做网站的科技公司,湛江网站建设湛江,主流搜索引擎有哪些,综合权重查询难度#xff1a;简单 给你一个下标从 0 开始的整数数组 nums 。根据下述规则重排 nums 中的值#xff1a; 按 非递增 顺序排列 nums 奇数下标 上的所有值。 举个例子#xff0c;如果排序前 nums [4,1,2,3] #xff0c;对奇数下标的值排序后变为 [4,3,2,1] 。奇数下标 1 和… 难度简单 给你一个下标从 0 开始的整数数组 nums 。根据下述规则重排 nums 中的值 按 非递增 顺序排列 nums 奇数下标 上的所有值。 举个例子如果排序前 nums [4,1,2,3] 对奇数下标的值排序后变为 [4,3,2,1] 。奇数下标 1 和 3 的值按照非递增顺序重排。 按 非递减 顺序排列 nums 偶数下标 上的所有值。 举个例子如果排序前 nums [4,1,2,3] 对偶数下标的值排序后变为 [2,1,4,3] 。偶数下标 0 和 2 的值按照非递减顺序重排。 返回重排 nums 的值之后形成的数组。 示例 1 输入nums [4,1,2,3]
输出[2,3,4,1]
解释
首先按非递增顺序重排奇数下标1 和 3的值。
所以nums 从 [4,1,2,3] 变为 [4,3,2,1] 。
然后按非递减顺序重排偶数下标0 和 2的值。
所以nums 从 [4,1,2,3] 变为 [2,3,4,1] 。
因此重排之后形成的数组是 [2,3,4,1] 。示例 2 输入nums [2,1]
输出[2,1]
解释
由于只有一个奇数下标和一个偶数下标所以不会发生重排。
形成的结果数组是 [2,1] 和初始数组一样。 提示 1 nums.length 1001 nums[i] 100 题解 class Solution:def sortEvenOdd(self, nums: List[int]) - List[int]:odd [] ## 奇数even [] ## 偶数for i in range(0,len(nums)):if i % 2 1:odd.append(nums[i])else:even.append(nums[i])odd.sort(reverseTrue)even.sort()final_res []y []## 判断奇数偶数列表长度不一致时的不同处理方式if len(odd) len(even):y.append(odd[-1])odd odd[0:len(odd)-1]elif len(even) len(odd):y.append(even[-1])even even[0:len(even)-1]for a,b in zip(even,odd):final_res.append(a)final_res.append(b)final_res.append(y[0])else:for a,b in zip(even,odd):final_res.append(a)final_res.append(b)return final_res