กำหนด array nums Operation หนึ่งครั้ง = เลือก subset ใดก็ได้ แล้ว +1 ทุกตัวใน subset หาจำนวน operation น้อยที่สุดเพื่อทำให้ค่าทุกตัวเท่ากัน
ตัวอย่าง: [1,3,5] → Output: 4
คำอธิบาย: ต้องเพิ่มค่า 1 ให้เป็น 5 (4 ครั้ง), 3 ให้เป็น 5 (2 ครั้ง) แต่ทำพร้อมกันได้ → ต้องใช้ max - min = 4 ครั้ง
ข้อสังเกตสำคัญ
ในแต่ละ operation สามารถเพิ่ม subset ใดก็ได้ → สามารถเพิ่มค่าน้อยๆ พร้อมกันได้ จำนวนรอบขั้นต่ำ = max(nums) - min(nums)
ตัวอย่างโค้ด C++
#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
int solve(vector<int>& nums) {
if(nums.size() == 1) return 0;
int mx = *max_element(nums.begin(), nums.end());
int mn = *min_element(nums.begin(), nums.end());
return mx - mn;
}
};
int main() {
Solution ob;
vector<int> v = {1,3,5};
cout << ob.solve(v);
}
Input
{1,3,5}
Output
4