Class Solution
-
- All Implemented Interfaces:
public final class Solution
2059 - Minimum Operations to Convert Number\.
Medium
You are given a 0-indexed integer array
nums
containing distinct numbers, an integerstart
, and an integergoal
. There is an integerx
that is initially set tostart
, and you want to perform operations onx
such that it is converted togoal
. You can perform the following operation repeatedly on the numberx
:If
0 <= x <= 1000
, then for any indexi
in the array (0 <= i < nums.length
), you can setx
to any of the following:x + nums[i]
x - nums[i]
x ^ nums[i]
(bitwise-XOR)
Note that you can use each
nums[i]
any number of times in any order. Operations that setx
to be out of the range0 <= x <= 1000
are valid, but no more operations can be done afterward.Return the minimum number of operations needed to convert
x = start
intogoal
, and-1
if it is not possible.Example 1:
Input: nums = 2,4,12, start = 2, goal = 12
Output: 2
Explanation: We can go from 2 → 14 → 12 with the following 2 operations.
2 + 12 = 14
14 - 2 = 12
Example 2:
Input: nums = 3,5,7, start = 0, goal = -4
Output: 2
Explanation: We can go from 0 → 3 → -4 with the following 2 operations.
0 + 3 = 3
3 - 7 = -4
Note that the last operation sets x out of the range 0 <= x <= 1000, which is valid.
Example 3:
Input: nums = 2,8,16, start = 0, goal = 1
Output: -1
Explanation: There is no way to convert 0 into 1.
Constraints:
1 <= nums.length <= 1000
<code>-10<sup>9</sup><= numsi, goal <= 10<sup>9</sup></code>
0 <= start <= 1000
start != goal
All the integers in
nums
are distinct.
-
-
Constructor Summary
Constructors Constructor Description Solution()
-
Method Summary
Modifier and Type Method Description final Integer
minimumOperations(IntArray nums, Integer start, Integer goal)
-
-
Method Detail
-
minimumOperations
final Integer minimumOperations(IntArray nums, Integer start, Integer goal)
-
-
-
-