Skip to main content

3443.js

/** ------------------------------------------------------------------------------
*
* 3443. Maximum Manhattan Distance After K Changes
* Topics: Hash Table, Math
* https://leetcode.com/problems/maximum-manhattan-distance-after-k-changes/description/?envType=daily-question&envId=2025-06-20
*
------------------------------------------------------------------------------ */
/**
* @param {string} s
* @param {number} k
* @return {number}
*/
var maxDistance = function (s, k) {
let x = 0,
y = 0
let maxDist = 0

for (let i = 0; i < s.length; i++) {
const ch = s[i]
if (ch === "N") y++
else if (ch === "S") y--
else if (ch === "E") x++
else if (ch === "W") x--

// Up to k changes can help us go farther
let changes = Math.min(k, i + 1)
let dist = Math.abs(x) + Math.abs(y) + 2 * changes

// Cannot go beyond total number of moves
dist = Math.min(dist, i + 1)

maxDist = Math.max(maxDist, dist)
}

return maxDist
}

console.log()