Leetcode 2934. Minimum Operations to Maximize Last Elements in Arrays
- Leetcode 2934. Minimum Operations to Maximize Last Elements in Arrays
- 1. 解题思路
- 2. 代码实现
- 题目链接:2934. Minimum Operations to Maximize Last Elements in Arrays
1. 解题思路
这一题思路上其实很简单,直接分情况考察一下最后一个元素交换与不交换两种情况下所需的交换次数取最小值即可。
2. 代码实现
给出python代码实现如下:
class Solution:def minOperations(self, nums1: List[int], nums2: List[int]) -> int:n = len(nums1)s1, s2 = nums1[-1], nums2[-1]ans1 = 0for i in range(n-1):if nums1[i] <= s1 and nums2[i] <= s2:continueelif nums1[i] <= s2 and nums2[i] <= s1:ans1 += 1else:ans1 = math.infbreaks1, s2 = nums2[-1], nums1[-1]ans2 = 1for i in range(n-1):if nums1[i] <= s1 and nums2[i] <= s2:continueelif nums1[i] <= s2 and nums2[i] <= s1:ans2 += 1else:ans2 = math.infbreakans = min(ans1, ans2)return ans if ans < n else -1
提交代码评测得到:耗时157ms,占用内存16.6MB。