Link: https://leetcode.com/problems/minimum-operations-to-form-subsequence-with-target-sum/description/ ## 思路 思路参考[这里](https://leetcode.com/problems/minimum-operations-to-form-subsequence-with-target-sum/solutions/3965489/c-python-check-from-big-to-small/) if ```total < target```, return -1 check from big to small let's say the current number is called ```num``` if the sum of all the number smaller than ```num```, we can definitely drop ```num``` if ```num<=target```, we surely use it else, we need to split the current ```num``` into two ```num//2``` ## Code ```python= class Solution: def minOperations(self, nums: List[int], target: int) -> int: tot = sum(nums) if tot<target: return -1 nums.sort() ans = 0 while target: num = nums.pop() if tot - num >= target: tot -= num elif num <= target: tot -= num target -= num else: nums.append(num//2) nums.append(num//2) ans += 1 return ans ```