双指针算法

2021-04-19 09:27

阅读:675

标签:win   toc   substr   bst   sts   注意   最小覆盖   lan   long   

双指针算法

LeetCode 3. 无重复字符的最长子串

while()是非法的,在外更新答案

class Solution {
    public int lengthOfLongestSubstring(String s) {
        char[] c = s.toCharArray();
        int n = c.length;
        int[] cnt = new int[128];
        int res = 0;
        for(int i=0, j=0; j  1) cnt[c[i++]]--;
            res = Math.max(res, j-i+1);
        }
        return res;
    }
}

LeetCode 76. 最小覆盖子串

注意while()中是合法,在此更新答案。

class Solution {
    boolean isEq(int[] cnt1, int[] cnt2) {
        for(int i=0; i  cnt1[i])
                return false;
        return true;
    }
    public String minWindow(String s, String t) {
        if(t.equals("")) return "";
        char[] s1 = s.toCharArray();
        char[] t1 = t.toCharArray();
        int n = s1.length, m = t1.length;
        int[] cnt1 = new int[128];
        int[] cnt2 = new int[128];
        for(int i=0; i  j-i+1)) 
                    res = s.substring(i, j+1);
                cnt1[s1[i++]]--;
            }
        }
        return res;
    }
}

双指针算法

标签:win   toc   substr   bst   sts   注意   最小覆盖   lan   long   

原文地址:https://www.cnblogs.com/lixyuan/p/13289984.html


评论


亲,登录后才可以留言!