方法
- 双指针,从两头往里走,比较能否通过合并凑成回文。
- 两边分别记录当前合并的和 leftsum,rightsum
class Solution {
public int minimumOperations(int[] nums) {
int res = 0;
int left = 0, right = nums.length - 1;
int leftSum = nums[left], rightSum = nums[right];
while (left < right) {
if (leftSum == rightSum) { // 两遍合并得到的数相等了
left++;
right--;
leftSum = nums[left];
rightSum = nums[right];
} else if (leftSum < rightSum) {
left++;
leftSum += nums[left];
res++; // 合并,操作次数+1
} else {
right--;
rightSum += nums[right];
res++; // 合并,操作次数+1
}
}
return res;
}
}