Skip to content
Related Articles
Check if a key is present in every segment of size k in an array
• Difficulty Level : Easy
• Last Updated : 15 Mar, 2021

Given an array arr[] and size of array is n and one another key x, and give you a segment size k. The task is to find that the key x present in every segment of size k in arr[].
Examples:

Input :
arr[] = { 3, 5, 2, 4, 9, 3, 1, 7, 3, 11, 12, 3}
x = 3
k = 3
Output : Yes
There are 4 non-overlapping segments of size k in the array, {3, 5, 2}, {4, 9, 3}, {1, 7, 3} and {11, 12, 3}. 3 is present all segments.
Input :
arr[] = { 21, 23, 56, 65, 34, 54, 76, 32, 23, 45, 21, 23, 25}
x = 23
k = 5
Output :Yes
There are three segments and last segment is not full {21, 23, 56, 65, 34}, {54, 76, 32, 23, 45} and {21, 23, 25}.
23 is present all window.
Input :arr[] = { 5, 8, 7, 12, 14, 3, 9}
x = 8
k = 2
Output : No

The idea is simple, we consider every segment of size k and check if x is present in the window or not. We need to carefully handle the last segment.
Below is the implementation of the above approach:

## C++

 `// C++ code to find the  every segment size of``// array have a search key x``#include ``using` `namespace` `std;` `bool` `findxinkindowSize(``int` `arr[], ``int` `x, ``int` `k, ``int` `n)``{``    ``int` `i;``    ``for` `(i = 0; i < n; i = i + k) {` `        ``// Search x in segment starting``        ``// from index i.``        ``int` `j;``        ``for` `(j = 0; j < k; j++)``            ``if` `(arr[i + j] == x)``                ``break``;` `        ``// If loop didn't break``        ``if` `(j == k)``           ``return` `false``;``    ``}` `    ``// If n is a multiple of k``    ``if` `(i == n)``       ``return` `true``;` `    ``// Check in last segment if n``    ``// is not multiple of k.``    ``int` `j;``    ``for` `(j=i-k; j

## Java

 `// Java code to find the every``// segment size of array have``// a search key x``import` `java.util.*;``class` `GFG {``    ``static` `boolean` `findxinkindowSize(``int` `N, ``int``[] arr,``                                     ``int` `x, ``int` `k)``    ``{``        ``int` `i;``        ``boolean` `b = ``false``;``      ` `        ``// Iterate from 0 to N - 1``        ``for` `(i = ``0``; i < N; i = i + k) {``          ` `            ``// Iterate from 0 to k - 1``            ``for` `(``int` `j = ``0``; j < k; j++) {``                ``if` `(i + j < N && arr[i + j] == x)``                    ``break``;` `                ``if` `(j == k)``                    ``return` `false``;``                ``if` `(i + j >= N)``                    ``return` `false``;``            ``}``        ``}``        ``if` `(i >= N)``            ``return` `true``;``        ``else``            ``return` `b;``    ``}` `    ``// Driver Code``    ``public` `static` `void` `main(String args[])``    ``{``        ``int` `arr[] = ``new` `int``[] { ``3``, ``5``, ``2``, ``4``,  ``9``,  ``3``,``                                ``1``, ``7``, ``3``, ``11``, ``12``, ``3` `};``        ``int` `x = ``3``, k = ``3``;``        ``int` `n = arr.length;``        ``if` `(findxinkindowSize(n, arr, x, k))``            ``System.out.println(``"Yes"``);``        ``else``            ``System.out.println(``"No"``);``    ``}``}` `// This code is contributed by Vivek258709`

## Python 3

 `# Python 3 program to find``# the every segment size of``# array have a search key x` `def` `findxinkindowSize(arr, x, k, n) :` `    ``i ``=` `0``    ``while` `i < n :` `        ``j ``=` `0``        ` `        ``# Search x in segment``        ``# starting from index i``        ``while` `j < k :``            ` `            ``if` `arr[i ``+` `j] ``=``=` `x :``                ``break``            ` `            ``j ``+``=` `1` `        ``# If loop didn't break``        ``if` `j ``=``=` `k :``            ``return` `False` `        ``i ``+``=` `k``        ` `    ``# If n is a multiple of k    ``    ``if` `i ``=``=` `n :``        ``return` `True` `    ``j ``=` `i ``-` `k``    ` `    ``# Check in last segment if n``    ``# is not multiple of k.``    ``while` `j < n :``        ``if` `arr[j] ``=``=` `x :``            ``break` `        ``j ``+``=` `1` `    ``if` `j ``=``=` `n :``        ``return` `False` `    ``return` `True` `# Driver Code``if` `__name__ ``=``=` `"__main__"` `:` `    ``arr ``=` `[ ``3``, ``5``, ``2``, ``4``, ``9``, ``3``,``            ``1``, ``7``, ``3``, ``11``, ``12``, ``3` `]``    ``x, k ``=` `3``, ``3``    ``n ``=` `len``(arr)``    ` `    ``if` `(findxinkindowSize(arr, x, k, n)) :``        ``print``(``"Yes"``)``    ``else` `:``        ``print``(``"No"``)``        ` `# This code is contributed``# by ANKITRAI1`

## C#

 `// C# code to find the every``// segment size of array have``// a search key x``using` `System;` `class` `GFG``{``static` `bool` `findxinkindowSize(``int``[] arr, ``int` `x,``                              ``int` `k, ``int` `n)``{``    ``int` `i;``    ``for` `(i = 0; i < n; i = i + k)``    ``{` `        ``// Search x in segment``        ``// starting from index i.``        ``int` `j;``        ``for` `(j = 0; j < k; j++)``            ``if` `(arr[i + j] == x)``                ``break``;` `        ``// If loop didn't break``        ``if` `(j == k)``        ``return` `false``;``    ``}` `    ``// If n is a multiple of k``    ``if` `(i == n)``    ``return` `true``;` `    ``// Check in last segment if``    ``// n is not multiple of k.``    ``int` `l;``    ``for` `(l = i - k; l < n; l++)``    ``if` `(arr[l] == x)``        ``break``;``    ``if` `(l == n)``    ``return` `false``;``    ` `    ``return` `true``;``}` `// Driver Code``public` `static` `void` `Main()``{``    ``int``[] arr = ``new` `int``[] {3, 5, 2, 4, 9, 3,``                         ``1, 7, 3, 11, 12, 3};``    ``int` `x = 3, k = 3;``    ``int` `n = arr.Length;``    ``if` `(findxinkindowSize(arr, x, k, n))``        ``Console.Write(``"Yes"``);``    ``else``        ``Console.Write(``"No"``);``}``}` `// This code is contributed by ChitraNayal`

## PHP

 ``

## Javascript

 ``
Output:
`Yes`

Time Complexity: O(n)

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

In case you wish to attend live classes with industry experts, please refer DSA Live Classes

My Personal Notes arrow_drop_up