Related Articles

# Find final value if we double after every successful search in array

• Difficulty Level : Basic
• Last Updated : 07 Apr, 2021

Given an array and an integer k, traverse the array and if the element in array is k, double the value of k and continue traversal. In the end return value of k.
Examples:

```Input : arr[] = { 2, 3, 4, 10, 8, 1 }, k = 2
Output: 16
Explanation:
First k = 2 is found, then we search for 4
which is also found, then we search for 8
which is also found, then we search for 16.

Input : arr[] = { 2, 4, 5, 6, 7 }, k = 3
Output: 3```

Method – 1: (Brute-force)

1) Traverse each element of an array if arr[i] == k then k = 2 * k.
2) Repeat the same process for the max value of k.
3) At last Return the value of k.

Method – 2: (Sort and the search)

1) Sort the array
2) Then you can just search for the element in one loop because we are sure that k*2 would be after k in this array. Therefore,  just multiply the value of k there in the loop only.

## C++

 `// CPP program to find value if we double``// the value after every successful search``#include ``using` `namespace` `std;` `// Function to Find the value of k``int` `findValue(``int` `a[], ``int` `n, ``int` `k)``{` `    ``// Sort the array``    ``sort(a, a + n);` `    ``// Search for k. After every successful``    ``// search, double k.``    ``for` `(``int` `i = 0; i < n; i++) {``        ` `        ``// Check is a[i] is equal to k``        ``if` `(a[i] == k)``            ``k *= 2;``    ``}` `    ``return` `k;``}` `// Driver's Code``int` `main()``{``    ``int` `arr[] = { 2, 3, 4, 10, 8, 1 }, k = 2;``    ``int` `n = ``sizeof``(arr) / ``sizeof``(arr);``    ``cout << findValue(arr, n, k);``    ``return` `0;``}`

## Java

 `// Java program to find value``// if we double  the value after``// every successful search` `class` `GFG {``    ``// Function to Find the value of k``    ``static` `int` `findValue(``int` `arr[], ``int` `n, ``int` `k)``    ``{` `        ``// Search for k. After every successful``        ``// search, double k.``        ``for` `(``int` `i = ``0``; i < n; i++)``            ``if` `(arr[i] == k)``                ``k *= ``2``;` `        ``return` `k;``    ``}` `    ``// Driver Code``    ``public` `static` `void` `main(String[] args)``    ``{``        ``int` `arr[] = { ``2``, ``3``, ``4``, ``10``, ``8``, ``1` `}, k = ``2``;``        ``int` `n = arr.length;``        ``System.out.print(findValue(arr, n, k));``    ``}``}``// This code is contriubted by``// Smitha Dinesh Semwal`

## Python3

 `# Python program to find``# value if we double``# the value after every``# successful search` `# Function to Find the value of k`  `def` `findValue(arr, n, k):` `    ``# Search for k.``    ``# After every successful``    ``# search, double k.``    ``for` `i ``in` `range``(n):``        ``if` `(arr[i] ``=``=` `k):``            ``k ``=` `k ``*` `2` `    ``return` `k` `# Driver's Code`  `arr ``=` `[``2``, ``3``, ``4``, ``10``, ``8``, ``1``]``k ``=` `2``n ``=` `len``(arr)` `print``(findValue(arr, n, k))` `# This code is contributed``# by Anant Agarwal.`

## C#

 `// C# program to find value``// if we double the value after``// every successful search``using` `System;` `class` `GFG {` `    ``// Function to Find the value of k``    ``static` `int` `findValue(``int``[] arr, ``int` `n, ``int` `k)``    ``{` `        ``// Search for k. After every successful``        ``// search, double k.``        ``for` `(``int` `i = 0; i < n; i++)``            ``if` `(arr[i] == k)``                ``k *= 2;` `        ``return` `k;``    ``}` `    ``// Driver Code``    ``public` `static` `void` `Main()``    ``{``        ``int``[] arr = { 2, 3, 4, 10, 8, 1 };``        ``int` `k = 2;``        ``int` `n = arr.Length;` `        ``Console.WriteLine(findValue(arr, n, k));``    ``}``}` `// This code is contriubted by vt_m.`

## PHP

 ``

## Javascript

 ``

Output:

`16`

Time Complexity : O(nlogn)
Method – 3: (Hashing)

1) Put all elements in hashmap.

2) Search if k is in hashmap, If it is then multiply the value by k or return value of k.

## C++

 `// CPP program for the above approach``#include ``using` `namespace` `std;` `// Function to find the value``int` `findValue(``int` `a[], ``int` `n, ``int` `k)``{``    ` `    ``// Unordered Map``    ``unordered_set<``int``> m;``  ` `    ``// Iterate from 0 to n - 1``    ``for` `(``int` `i = 0; i < n; i++)``        ``m.insert(a[i]);` `    ``while` `(m.find(k) != m.end())``        ``k = k * 2;` `    ``return` `k;``}` `// Driver's Code``int` `main()``{``    ``int` `arr[] = { 2, 3, 4, 10, 8, 1 }, k = 2;``    ``int` `n = ``sizeof``(arr) / ``sizeof``(arr);``    ``cout << findValue(arr, n, k);``    ``return` `0;``}`

Time Complexity: O(n)

Space Complexity: O(n)

?list=PLqM7alHXFySEQDk2MDfbwEdjd2svVJH9p
Reference:href=”https://www.geeksforgeeks.org/flipkart-interview-experience-set-35-on-campus-for-sde-1/”

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 experts, please refer DSA Live Classes for Working Professionals and Competitive Programming Live for Students.

My Personal Notes arrow_drop_up