3443. K 次修改后的最大曼哈顿距离
题目链接:3443. K 次修改后的最大曼哈顿距离
代码如下:
class Solution {
public:
int maxDistance(string s, int k) {
int res = 0;
// 定义一个大小为 'X'(88)的数组,并初始化为 0
int cnt['X']{};// *w' + 1 = 'X"
for (char ch : s){
cnt[ch]++;
int left = k;
function<int(int, int)> f = [&](int a, int b)->int {
int d = min({ a,b,left });
left -= d;
return abs(a - b) + d * 2;
};
res = max(res, f(cnt['N'], cnt['S']) + f(cnt['E'], cnt['W']));
}
return res;
}
};