1208. Get Equal Substrings Within Budget

T: O(n)
S: O(1)
class Solution {
    public int equalSubstring(String s, String t, int maxCost) {
        int sum = 0;
        int left = 0;
        int result = 0;
        for (int right = 0; right < s.length(); right++) {
            sum += Math.abs((s.charAt(right) - 'a') - (t.charAt(right) - 'a'));;
            while (left <= right && sum > maxCost) {
                sum -= Math.abs((s.charAt(left) - 'a') - (t.charAt(left) - 'a'));;
                left++;
            }
            result = Math.max(result, right - left + 1);
        }
        return result;
    }
}

/**
maxCost = 0
 x 
 r  
abcd
bcdf
  l
r - l + 1 = 0

   r  
abcd
bcdf
    l

end

T: O(n)
S: O(1)
 */

Last updated