Count distinct elements in every window Java
PROGRAM TO COUNT DISTINCT ELEMENTS IN EVERY WINDOW OF SIZE K
OUTPUT:
3 4 4 3
import java.util.Arrays; class Test { // Counts distinct elements in window of size k static int countWindowDistinct(int win[], int k) { int dist_count = 0; // Traverse the window for (int i = 0; i < k; i++) { // Check if element arr[i] exists in arr[0..i-1] int j; for (j = 0; j < i; j++) if (win[i] == win[j]) break; if (j == i) dist_count++; } return dist_count; } // Counts distinct elements in all windows of size k static void countDistinct(int arr[], int n, int k) { // Traverse through every window for (int i = 0; i <= n - k; i++) System.out.println(countWindowDistinct(Arrays.copyOfRange(arr, i, arr.length), k)); } // Driver method public static void main(String args[]) { int arr[] = { 1, 2, 1, 3, 4, 2, 3 }, k = 4; countDistinct(arr, arr.length, k); } }
3 4 4 3
Comments
Post a Comment