Minimum Operations to Form Subsequence With Target Sum
hard · verified · 32.4% accepted · 554 likes · top 10%
array · greedy · bit manipulation
Description
You are given a 0-indexed array nums consisting of non-negative powers of 2, and an integer target.
In one operation, you must apply the following changes to the array:
- Choose any element of the array nums[i] such that nums[i] > 1.
- Remove nums[i] from the array.
- Add two occurrences of nums[i] / 2 to the end of nums.
Return the minimum number of operations you need to perform so that nums contains a subsequence whose elements sum to target. If it is impossible to obtain such a subsequence, return -1.
A subsequence is an array that can be derived from another array by deleting some or no elements without changing the order of the remaining elements.
Example 1:
Example 2:
Example 3:
Solution