Skip to content
geeksforgeeks
  • Courses
    • DSA to Development
    • Get IBM Certification
    • Newly Launched!
      • Master Django Framework
      • Become AWS Certified
    • For Working Professionals
      • Interview 101: DSA & System Design
      • Data Science Training Program
      • JAVA Backend Development (Live)
      • DevOps Engineering (LIVE)
      • Data Structures & Algorithms in Python
    • For Students
      • Placement Preparation Course
      • Data Science (Live)
      • Data Structure & Algorithm-Self Paced (C++/JAVA)
      • Master Competitive Programming (Live)
      • Full Stack Development with React & Node JS (Live)
    • Full Stack Development
    • Data Science Program
    • All Courses
  • Tutorials
    • Data Structures & Algorithms
    • ML & Data Science
    • Interview Corner
    • Programming Languages
    • Web Development
    • CS Subjects
    • DevOps And Linux
    • School Learning
  • Practice
    • Build your AI Agent
    • GfG 160
    • Problem of the Day
    • Practice Coding Problems
    • GfG SDE Sheet
  • Contests
    • Accenture Hackathon (Ending Soon!)
    • GfG Weekly [Rated Contest]
    • Job-A-Thon Hiring Challenge
    • All Contests and Events
  • DSA
  • Interview Questions on Array
  • Practice Array
  • MCQs on Array
  • Tutorial on Array
  • Types of Arrays
  • Array Operations
  • Subarrays, Subsequences, Subsets
  • Reverse Array
  • Static Vs Arrays
  • Array Vs Linked List
  • Array | Range Queries
  • Advantages & Disadvantages
Open In App
Next Article:
Find pairs of elements from two different arrays whose product is a perfect square
Next article icon

Kth smallest number in array formed by product of any two elements from two arrays

Last Updated : 19 Nov, 2021
Comments
Improve
Suggest changes
Like Article
Like
Report

Given two sorted arrays A[] and B[] consisting of N and M integers respectively, the task is to find the Kth smallest number in the array formed by the product of all possible pairs from array A[] and B[] respectively.

Examples:

Input: A[] = {1, 2, 3}, B[] = {-1, 1}, K = 4
Output: 1
Explanation: The array formed by the product of any two numbers from array A[] and B[] respectively is prod[] = {-3, -2, -1, 1, 2, 3}. Hence, the 4th smallest integer in the prod[] array is 1.

Input: A[] = {-4, -2, 0, 3}, B[] = {1, 10}, K = 7
Output: 3

 

Approach: The given problem can be solved with the help of Binary Search over all possible values of products. The approach discussed here is very similar to the approach discussed in this article. Below are the steps to follow:

  • Create a function check(key), which returns whether the number of elements smaller than the key in the product array is more than K or not. It can be done using the two-pointer technique similar to the algorithm discussed in the article here.
  • Perform a binary search over the range [INT_MIN, INT_MAX] to find the smallest number ans such that the number of elements smaller than ans in the product array is at least K.
  • After completing the above steps, print the value of ans as the result.

Below is the implementation of the above approach:

C++
// C++ program for the above approach #include <bits/stdc++.h> using namespace std; #define int long long  // Function to check if count of elements // greater than req in product array are // more than K or not bool check(int req, vector<int> posA,            vector<int> posB, vector<int> negA,            vector<int> negB, int K) {     // Stores the count of numbers less     // than or equal to req     int cnt = 0;      // Case with both elements of A[] and     // B[] are negative     int first = 0;     int second = negB.size() - 1;      // Count number of pairs formed from     // array A[] and B[] with both elements     // negative and there product <= req     while (first < negA.size()) {         while (second >= 0                && negA[first]                           * negB[second]                       <= req)             second--;          // Update cnt         cnt += negB.size() - second - 1;         first++;     }      // Case with both elements of A[] and     // B[] are positive     first = 0;     second = posB.size() - 1;      // Count number of pairs formed from     // array A[] and B[] with both elements     // positive and there product <= req     while (first < posA.size()) {         while (second >= 0                && posA[first]                           * posB[second]                       > req)             second--;          // Update cnt         cnt += second + 1;         first++;     }      // Case with elements of A[] and B[]     // as positive and negative respectively     first = posA.size() - 1;     second = negB.size() - 1;      // Count number of pairs formed from     // +ve integers of A[] and -ve integer     // of array B[] product <= req     while (second >= 0) {         while (first >= 0                && posA[first]                           * negB[second]                       <= req)             first--;          // Update cnt         cnt += posA.size() - first - 1;         second--;     }      // Case with elements of A[] and B[]     // as negative and positive respectively     first = negA.size() - 1;     second = posB.size() - 1;      // Count number of pairs formed from     // -ve and +ve integers from A[] and     // B[] with product <= req     for (; first >= 0; first--) {         while (second >= 0                && negA[first]                           * posB[second]                       <= req)             second--;          // Update cnt         cnt += posB.size() - second - 1;     }      // Return Answer     return (cnt >= K); }  // Function to find the Kth smallest // number in array formed by product of // any two elements from A[] and B[] int kthSmallestProduct(vector<int>& A,                        vector<int>& B,                        int K) {     vector<int> posA, negA, posB, negB;      // Loop to iterate array A[]     for (const auto& it : A) {         if (it >= 0)             posA.push_back(it);         else             negA.push_back(it);     }      // Loop to iterate array B[]     for (const auto& it : B)         if (it >= 0)             posB.push_back(it);         else             negB.push_back(it);      // Stores the lower and upper bounds     // of the binary search     int l = LLONG_MIN, r = LLONG_MAX;      // Stores the final answer     int ans;      // Find the kth smallest integer     // using binary search     while (l <= r) {          // Stores the mid         int mid = (l + r) / 2;          // If the number of elements         // greater than mid in product         // array are more than K         if (check(mid, posA, posB,                   negA, negB, K)) {             ans = mid;             r = mid - 1;         }         else {             l = mid + 1;         }     }      // Return answer     return ans; }  // Driver Code int32_t main() {     vector<int> A = { -4, -2, 0, 3 };     vector<int> B = { 1, 10 };     int K = 7;      cout << kthSmallestProduct(A, B, K);      return 0; } 
Java
// Java program for the above approach import java.util.*;  class GFG{   // Function to check if count of elements // greater than req in product array are // more than K or not static boolean check(int req, Vector<Integer> posA,            Vector<Integer> posB, Vector<Integer> negA,            Vector<Integer> negB, int K) {        // Stores the count of numbers less     // than or equal to req     int cnt = 0;      // Case with both elements of A[] and     // B[] are negative     int first = 0;     int second = negB.size() - 1;      // Count number of pairs formed from     // array A[] and B[] with both elements     // negative and there product <= req     while (first < negA.size()) {         while (second >= 0                && negA.elementAt(first)                           * negB.elementAt(second)                       <= req)             second--;          // Update cnt         cnt += negB.size() - second - 1;         first++;     }      // Case with both elements of A[] and     // B[] are positive     first = 0;     second = posB.size() - 1;      // Count number of pairs formed from     // array A[] and B[] with both elements     // positive and there product <= req     while (first < posA.size()) {         while (second >= 0                && posA.elementAt(first)                           * posB.elementAt(second)                       > req)             second--;          // Update cnt         cnt += second + 1;         first++;     }      // Case with elements of A[] and B[]     // as positive and negative respectively     first = posA.size() - 1;     second = negB.size() - 1;      // Count number of pairs formed from     // +ve integers of A[] and -ve integer     // of array B[] product <= req     while (second >= 0) {         while (first >= 0                && posA.elementAt(first)                           * negB.elementAt(second)                       <= req)             first--;          // Update cnt         cnt += posA.size() - first - 1;         second--;     }      // Case with elements of A[] and B[]     // as negative and positive respectively     first = negA.size() - 1;     second = posB.size() - 1;      // Count number of pairs formed from     // -ve and +ve integers from A[] and     // B[] with product <= req     for (; first >= 0; first--) {         while (second >= 0                && negA.elementAt(first)                           * posB.elementAt(second)                       <= req)             second--;          // Update cnt         cnt += posB.size() - second - 1;     }      // Return Answer     return (cnt >= K); }  // Function to find the Kth smallest // number in array formed by product of // any two elements from A[] and B[] static int kthSmallestProduct(int[] A,                        int[] B,                        int K) {     Vector<Integer> posA = new Vector<>();      Vector<Integer> negA = new Vector<>();     Vector<Integer> posB = new Vector<>();     Vector<Integer> negB = new Vector<>();     // Loop to iterate array A[]     for (int  it : A) {         if (it >= 0)             posA.add(it);         else             negA.add(it);     }      // Loop to iterate array B[]     for (int it : B)         if (it >= 0)             posB.add(it);         else             negB.add(it);      // Stores the lower and upper bounds     // of the binary search     int l = Integer.MIN_VALUE, r = Integer.MAX_VALUE;      // Stores the final answer     int ans=0;      // Find the kth smallest integer     // using binary search     while (l <= r) {          // Stores the mid         int mid = (l + r) / 2;          // If the number of elements         // greater than mid in product         // array are more than K         if (check(mid, posA, posB,                   negA, negB, K)) {             ans = mid;             r = mid - 1;         }         else {             l = mid + 1;         }     }      // Return answer     return ans; }  // Driver Code public static void main(String[] args) {    int[] A = { -4, -2, 0, 3 };     int[] B = { 1, 10 };     int K = 7;      System.out.print(kthSmallestProduct(A, B, K));  } }  // This code is contributed by gauravrajput1  
Python3
# python program for the above approach LLONG_MAX = 9223372036854775807 LLONG_MIN = -9223372036854775807  # Function to check if count of elements # greater than req in product array are # more than K or not def check(req, posA, posB, negA, negB, K):      # Stores the count of numbers less     # than or equal to req     cnt = 0      # Case with both elements of A[] and     # B[] are negative     first = 0     second = len(negB) - 1      # Count number of pairs formed from     # array A[] and B[] with both elements     # negative and there product <= req     while (first < len(negA)):         while (second >= 0 and negA[first] * negB[second] <= req):             second -= 1          # Update cnt         cnt += len(negB) - second - 1         first += 1      # Case with both elements of A[] and     # B[] are positive     first = 0     second = len(posB) - 1      # Count number of pairs formed from     # array A[] and B[] with both elements     # positive and there product <= req     while (first < len(posA)):         while (second >= 0 and posA[first] * posB[second] > req):             second -= 1          # Update cnt         cnt += second + 1         first += 1      # Case with elements of A[] and B[]     # as positive and negative respectively     first = len(posA) - 1     second = len(negB) - 1      # Count number of pairs formed from     # +ve integers of A[] and -ve integer     # of array B[] product <= req     while (second >= 0):         while (first >= 0 and posA[first] * negB[second] <= req):             first -= 1          # Update cnt         cnt += len(posA) - first - 1         second -= 1      # Case with elements of A[] and B[]     # as negative and positive respectively     first = len(negA) - 1     second = len(posB) - 1      # Count number of pairs formed from     # -ve and +ve integers from A[] and     # B[] with product <= req     for first in range(first, -1, -1):         while (second >= 0 and negA[first] * posB[second] <= req):             second -= 1          # Update cnt         cnt += len(posB) - second - 1      # Return Answer     return (cnt >= K)   # Function to find the Kth smallest # number in array formed by product of # any two elements from A[] and B[] def kthSmallestProduct(A, B, K):      posA = []     negA = []     posB = []     negB = []      # Loop to iterate array A[]     for it in A:         if (it >= 0):             posA.append(it)         else:             negA.append(it)          # Loop to iterate array B[]     for it in B:         if (it >= 0):             posB.append(it)         else:             negB.append(it)          # Stores the lower and upper bounds         # of the binary search     l = LLONG_MIN     r = LLONG_MAX      # Stores the final answer     ans = 0      # Find the kth smallest integer     # using binary search     while (l <= r):          # Stores the mid         mid = (l + r) // 2          # If the number of elements         # greater than mid in product         # array are more than K         if (check(mid, posA, posB, negA, negB, K)):             ans = mid             r = mid - 1         else:             l = mid + 1          # Return answer     return ans   # Driver Code if __name__ == "__main__":      A = [-4, -2, 0, 3]     B = [1, 10]     K = 7      print(kthSmallestProduct(A, B, K))      # This code is contributed by rakeshsahni 
C#
// C# program for the above approach using System; using System.Collections.Generic;  public class GFG {      // Function to check if count of elements     // greater than req in product array are     // more than K or not     static bool check(int req, List<int> posA, List<int> posB, List<int> negA,             List<int> negB, int K) {          // Stores the count of numbers less         // than or equal to req         int cnt = 0;          // Case with both elements of []A and         // []B are negative         int first = 0;         int second = negB.Count - 1;          // Count number of pairs formed from         // array []A and []B with both elements         // negative and there product <= req         while (first < negA.Count) {             while (second >= 0 && negA[first]                           * negB[second] <= req)                 second--;              // Update cnt             cnt += negB.Count - second - 1;             first++;         }          // Case with both elements of []A and         // []B are positive         first = 0;         second = posB.Count - 1;          // Count number of pairs formed from         // array []A and []B with both elements         // positive and there product <= req         while (first < posA.Count) {             while (second >= 0 && posA[first] * posB[second] > req)                 second--;              // Update cnt             cnt += second + 1;             first++;         }          // Case with elements of []A and []B         // as positive and negative respectively         first = posA.Count - 1;         second = negB.Count - 1;          // Count number of pairs formed from         // +ve integers of []A and -ve integer         // of array []B product <= req         while (second >= 0) {             while (first >= 0 && posA[first] * negB[second] <= req)                 first--;              // Update cnt             cnt += posA.Count - first - 1;             second--;         }          // Case with elements of []A and []B         // as negative and positive respectively         first = negA.Count - 1;         second = posB.Count - 1;          // Count number of pairs formed from         // -ve and +ve integers from []A and         // []B with product <= req         for (; first >= 0; first--) {             while (second >= 0 && negA[first]* posB[second]<= req)                 second--;              // Update cnt             cnt += posB.Count - second - 1;         }          // Return Answer         return (cnt >= K);     }      // Function to find the Kth smallest     // number in array formed by product of     // any two elements from []A and []B     static int kthSmallestProduct(int[] A, int[] B, int K) {         List<int> posA = new List<int>();         List<int> negA = new List<int>();         List<int> posB = new List<int>();         List<int> negB = new List<int>();         // Loop to iterate array []A         foreach (int it in A) {             if (it >= 0)                 posA.Add(it);             else                 negA.Add(it);         }          // Loop to iterate array []B         foreach (int it in B)             if (it >= 0)                 posB.Add(it);             else                 negB.Add(it);          // Stores the lower and upper bounds         // of the binary search         int l = int.MinValue, r = int.MaxValue;          // Stores the readonly answer         int ans = 0;          // Find the kth smallest integer         // using binary search         while (l <= r) {              // Stores the mid             int mid = (l + r) / 2;              // If the number of elements             // greater than mid in product             // array are more than K             if (check(mid, posA, posB, negA, negB, K)) {                 ans = mid;                 r = mid - 1;             } else {                 l = mid + 1;             }         }          // Return answer         return ans;     }      // Driver Code     public static void Main(String[] args) {         int[] A = { -4, -2, 0, 3 };         int[] B = { 1, 10 };         int K = 7;          Console.Write(kthSmallestProduct(A, B, K));      } }  // This code is contributed by gauravrajput1  
JavaScript
<script> // Javascript program for the above approach  // Function to check if count of elements // greater than req in product array are // more than K or not function check(req, posA, posB, negA, negB, K) {    // Stores the count of numbers less   // than or equal to req   let cnt = 0;    // Case with both elements of A[] and   // B[] are negative   let first = 0;   let second = negB.length - 1;    // Count number of pairs formed from   // array A[] and B[] with both elements   // negative and there product <= req   while (first < negA.length) {     while (second >= 0 && negA[first] * negB[second] <= req) second--;      // Update cnt     cnt += negB.length - second - 1;     first++;   }    // Case with both elements of A[] and   // B[] are positive   first = 0;   second = posB.length - 1;    // Count number of pairs formed from   // array A[] and B[] with both elements   // positive and there product <= req   while (first < posA.length) {     while (second >= 0 && posA[first] * posB[second] > req) second--;      // Update cnt     cnt += second + 1;     first++;   }    // Case with elements of A[] and B[]   // as positive and negative respectively   first = posA.length - 1;   second = negB.length - 1;    // Count number of pairs formed from   // +ve integers of A[] and -ve integer   // of array B[] product <= req   while (second >= 0) {     while (first >= 0 && posA[first] * negB[second] <= req) first--;      // Update cnt     cnt += posA.length - first - 1;     second--;   }    // Case with elements of A[] and B[]   // as negative and positive respectively   first = negA.length - 1;   second = posB.length - 1;    // Count number of pairs formed from   // -ve and +ve integers from A[] and   // B[] with product <= req   for (; first >= 0; first--) {     while (second >= 0 && negA[first] * posB[second] <= req) second--;      // Update cnt     cnt += posB.length - second - 1;   }    // Return Answer   return cnt >= K; }  // Function to find the Kth smallest // number in array formed by product of // any two elements from A[] and B[] function kthSmallestProduct(A, B, K) {   let posA = [],     negA = [],     posB = [],     negB = [];    // Loop to iterate array A[]   for (it of A) {     if (it >= 0) posA.push(it);     else negA.push(it);   }    // Loop to iterate array B[]   for (it of B)     if (it >= 0) posB.push(it);     else negB.push(it);    // Stores the lower and upper bounds   // of the binary search   let l = Number.MIN_SAFE_INTEGER,     r = Number.MAX_SAFE_INTEGER;    // Stores the final answer   let ans;    // Find the kth smallest integer   // using binary search   while (l <= r)    {        // Stores the mid     let mid = (l + r) / 2;      // If the number of elements     // greater than mid in product     // array are more than K     if (check(mid, posA, posB, negA, negB, K)) {       ans = mid;       r = mid - 1;     } else {       l = mid + 1;     }   }    // Return answer   return ans; }  // Driver Code let A = [-4, -2, 0, 3]; let B = [1, 10]; let K = 7;  document.write(kthSmallestProduct(A, B, K));  // This code is contributed by gfgking. </script> 

Output: 
3

 

Time Complexity: O((N+M)*log 264) or O((N+M)*64)
Auxiliary Space: O(N+M)


Next Article
Find pairs of elements from two different arrays whose product is a perfect square

A

amit311kr
Improve
Article Tags :
  • Divide and Conquer
  • Searching
  • Competitive Programming
  • C++ Programs
  • DSA
  • Arrays
Practice Tags :
  • Arrays
  • Divide and Conquer
  • Searching

Similar Reads

  • Find pairs of elements from two different arrays whose product is a perfect square
    Prerequisites: Prime Factorization using SieveGiven two arrays arr1[] and arr2[] of size M and N with distinct elements in each of the arrays, the task is to find those pair of elements (one from the first array and other from the second array) whose product is a perfect square. Print -1 if no pairs
    15+ min read
  • Smallest number to be added in first Array modulo M to make frequencies of both Arrays equal
    Given two arrays A[] and B[] consisting of N positive integers and an integer M, the task is to find the minimum value of X such that operation (A[i] + X) % M performed on every element of array A[] results in the formation of an array with frequency of elements same as that in another given array B
    8 min read
  • C++ Program for Find k pairs with smallest sums in two arrays
    Given two integer arrays arr1[] and arr2[] sorted in ascending order and an integer k. Find k pairs with smallest sums such that one element of a pair belongs to arr1[] and other element belongs to arr2[]Examples: Input : arr1[] = {1, 7, 11} arr2[] = {2, 4, 6} k = 3 Output : [1, 2], [1, 4], [1, 6] E
    7 min read
  • C++ Program for Minimum product subset of an array
    Given an array a, we have to find the minimum product possible with the subset of elements present in the array. The minimum product can be a single element also. Examples:  Input : a[] = { -1, -1, -2, 4, 3 } Output : -24 Explanation : Minimum product will be ( -2 * -1 * -1 * 4 * 3 ) = -24 Input : a
    3 min read
  • Sort elements of an array A[] placed on a number line by shifting i-th element to (i + B[i])th positions minimum number of times
    Given two arrays A[] and B[] consisting of N positive integers such that each array element A[i] is placed at the ith position on the number line, the task is to find the minimum number of operations required to sort the array elements arranged in the number line. In each operation any array element
    9 min read
  • Minimum replacements required to have at most K distinct elements in the array
    Given an array arr[] consisting of N positive integers and an integer K, the task is to find the minimum number of array elements required to be replaced by the other array elements such that the array contains at most K distinct elements. Input: arr[] = { 1, 1, 2, 2, 5 }, K = 2 Output: 1 Explanatio
    13 min read
  • Minimize array sum by replacing greater and smaller elements of pairs by half and double of their values respectively atmost K times
    Given an array arr[] consisting of N positive integers and an integer K, the task is to find the minimum possible array sum that can be obtained by repeatedly selecting a pair from the given array and divide one of the elements by 2 and multiply the other element by 2, at most K times. Examples: Inp
    15+ min read
  • Product of all Subsequences of size K except the minimum and maximum Elements
    Given an array A[] containing N elements and an integer K. The task is to calculate the product of all elements of subsequences of size K except the minimum and the maximum elements for each subsequence. Note: Since the answer can be very large so print the final answer as mod of 109 + 7. Examples:
    12 min read
  • Construct MEX array from the given array
    Given an array arr[] having N distinct positive elements, the task is to generate another array B[] such that, for every ith index in the array, arr[], B[i] is the minimum positive number missing from arr[] excluding arr[i]. Examples: Input: arr[] = {2, 1, 5, 3}Output: B[] = {2, 1, 4, 3} Explanation
    8 min read
  • C++ Program for Minimum product pair an array of positive Integers
    Given an array of positive integers. We are required to write a program to print the minimum product of any two numbers of the given array.Examples: Input : 11 8 5 7 5 100 Output : 25 Explanation : The minimum product of any two numbers will be 5 * 5 = 25. Input : 198 76 544 123 154 675 Output : 744
    3 min read
geeksforgeeks-footer-logo
Corporate & Communications Address:
A-143, 7th Floor, Sovereign Corporate Tower, Sector- 136, Noida, Uttar Pradesh (201305)
Registered Address:
K 061, Tower K, Gulshan Vivante Apartment, Sector 137, Noida, Gautam Buddh Nagar, Uttar Pradesh, 201305
GFG App on Play Store GFG App on App Store
Advertise with us
  • Company
  • About Us
  • Legal
  • Privacy Policy
  • In Media
  • Contact Us
  • Advertise with us
  • GFG Corporate Solution
  • Placement Training Program
  • Languages
  • Python
  • Java
  • C++
  • PHP
  • GoLang
  • SQL
  • R Language
  • Android Tutorial
  • Tutorials Archive
  • DSA
  • Data Structures
  • Algorithms
  • DSA for Beginners
  • Basic DSA Problems
  • DSA Roadmap
  • Top 100 DSA Interview Problems
  • DSA Roadmap by Sandeep Jain
  • All Cheat Sheets
  • Data Science & ML
  • Data Science With Python
  • Data Science For Beginner
  • Machine Learning
  • ML Maths
  • Data Visualisation
  • Pandas
  • NumPy
  • NLP
  • Deep Learning
  • Web Technologies
  • HTML
  • CSS
  • JavaScript
  • TypeScript
  • ReactJS
  • NextJS
  • Bootstrap
  • Web Design
  • Python Tutorial
  • Python Programming Examples
  • Python Projects
  • Python Tkinter
  • Python Web Scraping
  • OpenCV Tutorial
  • Python Interview Question
  • Django
  • Computer Science
  • Operating Systems
  • Computer Network
  • Database Management System
  • Software Engineering
  • Digital Logic Design
  • Engineering Maths
  • Software Development
  • Software Testing
  • DevOps
  • Git
  • Linux
  • AWS
  • Docker
  • Kubernetes
  • Azure
  • GCP
  • DevOps Roadmap
  • System Design
  • High Level Design
  • Low Level Design
  • UML Diagrams
  • Interview Guide
  • Design Patterns
  • OOAD
  • System Design Bootcamp
  • Interview Questions
  • Inteview Preparation
  • Competitive Programming
  • Top DS or Algo for CP
  • Company-Wise Recruitment Process
  • Company-Wise Preparation
  • Aptitude Preparation
  • Puzzles
  • School Subjects
  • Mathematics
  • Physics
  • Chemistry
  • Biology
  • Social Science
  • English Grammar
  • Commerce
  • World GK
  • GeeksforGeeks Videos
  • DSA
  • Python
  • Java
  • C++
  • Web Development
  • Data Science
  • CS Subjects
@GeeksforGeeks, Sanchhaya Education Private Limited, All rights reserved
We use cookies to ensure you have the best browsing experience on our website. By using our site, you acknowledge that you have read and understood our Cookie Policy & Privacy Policy
Lightbox
Improvement
Suggest Changes
Help us improve. Share your suggestions to enhance the article. Contribute your expertise and make a difference in the GeeksforGeeks portal.
geeksforgeeks-suggest-icon
Create Improvement
Enhance the article with your expertise. Contribute to the GeeksforGeeks community and help create better learning resources for all.
geeksforgeeks-improvement-icon
Suggest Changes
min 4 words, max Words Limit:1000

Thank You!

Your suggestions are valuable to us.

What kind of Experience do you want to share?

Interview Experiences
Admission Experiences
Career Journeys
Work Experiences
Campus Experiences
Competitive Exam Experiences