看到題目我錯愕了一下, 看完討論才知道要找切最大塊的, 就是找垂直的兩刀間隔最大, 跟水瓶兩刀的間隔最大, 比較麻煩的事還要處理數字太大的問題
class Solution {
public:
int maxArea(int h, int w, vector<int>& hor, vector<int>& ver) {
sort(hor.begin(), hor.end());
sort(ver.begin(), ver.end());
long max_hor_cut = max(hor[0], h - hor.back());
long max_ver_cut = max(ver[0], w - ver.back());
for(int i = 1;i<hor.size();i++){
max_hor_cut = max(max_hor_cut, (long)hor[i] - hor[i -1]);
}
for(int i = 1; i < ver.size();i++){
max_ver_cut = max(max_ver_cut, (long)ver[i] - ver[i - 1]);
}
long area = 0;
area = (max_hor_cut * max_ver_cut ) ;
return area % (1000000007);
}
};