给你一个由互不相同的整数组成的数组 nums 。

在一次操作中,你可以交换任意两个 相邻 元素。

在一个排列中,当所有相邻元素的奇偶性交替出现,我们认为该排列是 有效排列。这意味着每对相邻元素中一个是偶数,一个是奇数。

请返回将 nums 变成任意一种 有效排列 所需的最小相邻交换次数。

如果无法重排 nums 来获得有效排列,则返回 -1

 

示例 1:

输入: nums = [2,4,6,5,7]

输出:3

解释:

将 5 和 6 交换,数组变成  [2,4,5,6,7]

将 5 和 4 交换,数组变成  [2,5,4,6,7]

将 6 和 7 交换,数组变成  [2,5,4,7,6]。此时是一个有效排列。因此答案是 3。

示例 2:

输入: nums = [2,4,5,7]

输出: 1

解释:

将 4 和 5 交换,数组变成 [2,5,4,7]。此时是一个有效排列。因此答案是 1。

示例 3:

输入: nums = [1,2,3]

输出: 0

解释:

数组已经是有效排列,因此不需要任何操作。

示例 4:

输入: nums = [4,5,6,8]

输出:-1

解释:

没有任何一种排列可以满足奇偶交替的要求,因此返回 -1。

 

提示: