330. Patching Array
思路
贪心
设置miss为缺少的数字,sum为当前所有选中数字的的最小和
挑选miss的规则
- 若数组中x <= sum + 1则选中x
- 若数组没有,就选中sum + 1为miss
直到sum > n
思路参考
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| public int minPatches(int[] nums, int n) { long miss = 0; long sum = 0; int cnt = 0; int i = 0; while (sum < n) { if (i < nums.length && nums[i] <= sum + 1) { sum += nums[i++]; } else { miss = sum + 1; sum += miss; cnt++; } } return cnt; }
|