# K-th smallest element after removing given integers from natural numbers | Set 2

Given an array arr[] of size &#x2018n&#x2019 and a positive integer k. Consider series of natural numbers and remove arr[0], arr[1], arr[2], &#x2026, arr[n-1] from it. Now the task is to find k-th smallest number in the remaining set of natural numbers.

Examples:

Input : arr[] = { 1 } and k = 1.
Output: 2
Natural numbers are {1, 2, 3, 4, …. }
After removing {1}, we get {2, 3, 4, …}.
Now, K-th smallest element = 2.

Input : arr[] = {1, 3}, k = 4.
Output : 6
First 5 Natural number {1, 2, 3, 4, 5, 6,  .. }
After removing {1, 3}, we get {2, 4, 5, 6, … }.

Two methods are discussed in this article. This post discusses one more method.

Algorithm:

1. Start traversing the array, for i ranging from 0 to N-1
2. If arr[I] <= k, then increment k. Else break out of traversing the rest of the array
3. The obtained k is the final answer

Note: This algorithm will only work if the input array is sorted. So first sort the given array (if not already) and in this case, the time complexity will become O(N log(N)).

Implementation:

## C++

 `// C++ program to find the K-th smallest element``// after removing some integers from natural number.``#include ``using` `namespace` `std;` `// Return the K-th smallest element.``int` `ksmallest(``int` `arr[], ``int` `n, ``int` `k)``{``    ``for` `(``int` `i = 0; i < n; i++) {``        ``if` `(arr[i] <= k)``            ``k++;``        ``else``            ``break``;``    ``}``    ``return` `k;``}` `// Driven Program``int` `main()``{``    ``int` `k = 1;``    ``int` `arr[] = { 1 };``    ``int` `n = ``sizeof``(arr) / ``sizeof``(arr[0]);``    ``cout << ksmallest(arr, n, k);``    ``return` `0;``}`

## Java

 `// Java program to find the``// K-th smallest element``// after removing some ``// integers from natural number.``class` `GFG``{` `// Return the K-th ``// smallest element.``static` `int` `ksmallest(``int` `arr[], ``                     ``int` `n, ``int` `k)``{``    ``for` `(``int` `i = ``0``; i < n; i++) ``    ``{``        ``if` `(arr[i] <= k)``            ``k++;``        ``else``            ``break``;``    ``}``    ``return` `k;``}` `// Driver Code``public` `static` `void` `main(String args[])``{``    ``int` `k = ``1``;``    ``int` `arr[] = { ``1` `};``    ``int` `n = arr.length;``    ``System.out.println(ksmallest(arr, n, k));``}``}` `// This code is contributed ``// by Arnab Kundu`

## Python3

 `# Python3 program to find ``# the K-th smallest element ``# after removing some integers``# from natural number.` `# Return the K-th ``# smallest element.``def` `ksmallest(arr, n, k):``    ``for` `i ``in` `range``(n): ``        ``if` `(arr[i] <``=` `k):``            ``k ``=` `k ``+` `1``;``        ``else``:``            ``break``;``    ``return` `k;` `# Driver Code``k ``=` `1``;``arr ``=` `[``1``];``n ``=` `len``(arr);``print``(ksmallest(arr, n, k));``    ` `# This code is contributed by mits`

## C#

 `// C# program to find the``// K-th smallest element``// after removing some ``// integers from natural number.``using` `System;` `class` `GFG``{``// Return the K-th ``// smallest element.` `static` `int` `ksmallest(``int` `[]arr, ``                     ``int` `n, ``int` `k)``{``    ``for` `(``int` `i = 0; i < n; i++) ``    ``{``        ``if` `(arr[i] <= k)``            ``k++;``        ``else``            ``break``;``    ``}``    ``return` `k;``}` `// Driver Code``static` `public` `void` `Main ()``{``    ``int` `k = 1;``    ``int` `[]arr = { 1 };``    ``int` `n = arr.Length;``    ``Console.WriteLine(ksmallest(arr, ``                                ``n, k));``}``}` `// This code is contributed @ajit`

## Javascript

 ``

## PHP

 ``

Output
```2

```

Time Complexity: O(N)
Auxiliary Space: O(1)

Previous
Next
Share your thoughts in the comments
Similar Reads