有一个显然的结论,即最中间的 \(1\) 是固定不动的。考虑反证,假设左右各有 \(k\) 个 \(1\),且所有 \(1\) 不是往正中间的 \(1\) 移动,那么一侧 \(k\) 个移动距离减小,另一侧 \(k\) 个移动距离增加,显然不会更优,因此结论得证。\(n\) 为奇数时,最中间只有一个 \(1\),计算一次即可;\(n\) 为偶数时,最中间有两个 \(1\),需要计算两次。
时间复杂度 \(O(n)\),代码就不放了。
有一个显然的结论,即最中间的 \(1\) 是固定不动的。考虑反证,假设左右各有 \(k\) 个 \(1\),且所有 \(1\) 不是往正中间的 \(1\) 移动,那么一侧 \(k\) 个移动距离减小,另一侧 \(k\) 个移动距离增加,显然不会更优,因此结论得证。\(n\) 为奇数时,最中间只有一个 \(1\),计算一次即可;\(n\) 为偶数时,最中间有两个 \(1\),需要计算两次。
时间复杂度 \(O(n)\),代码就不放了。