Cho mảng A có N số nguyên và mảng B chứa M số nguyên. Tìm tổng lớn nhất của các mảng con trong A mà không chứa phần bất kỳ phần tử nào của B.
Ví dụ:
| Input: A = {1, 4, 6, 7, 9}, B = {4, 8, 9} Ta xem các phần tử trong A mà có chứa trong B là một điểm khuyết, A = {1, !, 6, 7, ! } | 
Trước khi làm bài này, chúng ta cần biết đến thuật toán Kadane’s Algorithm. Kadane’s Algorithm là thuật toán tính tổng lớn nhất của các mảng con.
Note: Nếu giá trị trả về = 0, thì chuỗi con có tổng lớn nhất là {}.
public class Main {
    public static void main(String[] args) {
        int A[] = {1, 4, 6, 7, 9};
        int B[] = {4, 8, 9};
        int n = A.length;
        int m = B.length;
        System.out.println("Maximum Subarray Sum: " + maxSubArraySum(A, n, B, m));
    }
    public static boolean contain(int[] arr, int m, int value) {
        for (int item : arr) {
            if (item == value)
                return true;
        }
        return false;
    }
    static int maxSubArraySum(int a[], int n, int[] b, int m) {
        int max_so_far = Integer.MIN_VALUE, max_ending_here = 0;
        for (int i = 0; i < n; i++) {
            max_ending_here = max_ending_here + a[i];
            if (contain(b, m, a[i]))
                max_ending_here = 0;
            if (max_ending_here < 0)
                max_ending_here = 0;
            if (max_so_far < max_ending_here)
                max_so_far = max_ending_here;
        }
        return max_so_far;
    }
}
| Output: Maximum Subarray Sum: 13 | 
Độ phức tạp: θ(n * m)