目标
给你一个长度为 n 的数组 nums1,其中包含 互不相同 的整数。
你需要构造另一个长度为 n 的数组 nums2,使得 nums2 中的元素要么全部为 奇数,要么全部为 偶数。
对于每个下标 i,你必须从以下两种选择中 任选其一(顺序不限):
- nums2[i] = nums1[i]
- nums2[i] = nums1[i] - nums1[j],其中 j != i
如果能够构造出满足条件的数组,则返回 true;否则,返回 false。
示例 1:
输入: nums1 = [2,3]
输出: true
解释:
选择 nums2[0] = nums1[0] - nums1[1] = 2 - 3 = -1。
选择 nums2[1] = nums1[1] = 3。
nums2 = [-1, 3],两个元素均为奇数。因此答案为 true。
示例 2:
输入: nums1 = [4,6]
输出: true
解释:
选择 nums2[0] = nums1[0] = 4。
选择 nums2[1] = nums1[1] = 6。
nums2 = [4, 6],两个元素均为偶数。因此答案为 true。
说明:
- 1 <= n == nums1.length <= 100
- 1 <= nums1[i] <= 100
- nums1 中的所有整数互不相同。
思路
有一个元素互不相同的整数数组 nums1,问能否构造另一个相同长度的数组 nums2,nums2[i] = nums1[i] 或者 nums2[i] = nums1[i] - nums1[j],其中 j != i。使得 nums2 中的元素全为 奇数 或 偶数。
如果数组元素均为奇数/偶数直接满足条件,否则,可以将偶数减去任意奇数,使得整个数组变为奇数。直接返回 true 即可。
代码
/**
* @date 2026-09-02 9:17
*/
public class UniformArray3875 {
public boolean uniformArray(int[] nums1) {
return true;
}
}
性能
