Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,846 questions

51,767 answers

573 users

How to search insert position of K in a sorted vector with C++

2 Answers

0 votes
// Given a sorted array/vector of distinct integers and a target value K, 
// return the index if the target is found. 
// If not, return the index where it would be if it were inserted in order.

#include <iostream>
#include <vector>

// Function to find the index of k or the position 
int searchInsertPositionOfK(std::vector<int> vec, int k) {  

    for(int i = 0; i < vec.size(); i++) {  

        // If k is found or needs to be inserted before arr[i]
        if (vec[i] >= k) {  
            return i;  
        }  
    }  

    // If k is greater than all elements, it should be inserted at the end
    return vec.size();  
}  

int main() {  
   
    std::vector<int> vec1 = {1, 3, 5, 6, 7, 8};  
    int k1 = 5;  
    std::cout << searchInsertPositionOfK(vec1, k1) << "\n";  
    
    std::vector<int> vec2 = {1, 3, 5, 6, 7, 8};  
    int k2 = 2;  
    std::cout << searchInsertPositionOfK(vec2, k2) << "\n";  
    
    std::vector<int> vec3 = {1, 3, 5, 6, 7, 8};  
    int k3 = 9;  
    std::cout << searchInsertPositionOfK(vec3, k3) << "\n";  
}
 
 
 
/*
run:
 
2
1
6
 
*/
   
 

 



answered May 10, 2025 by avibootz
edited May 10, 2025 by avibootz
0 votes
// Given a sorted array/vector of distinct integers and a target value K, 
// return the index if the target is found. 
// If not, return the index where it would be if it were inserted in order.

#include <iostream>
#include <vector>

// Function to find the index of k or the position - Using Binary Search
int searchInsertPositionOfK(std::vector<int> vec, int k) {  

    int left = 0, right = vec.size() - 1;  

    while (left <= right) {  

        int mid = left + (right - left) / 2;  

        if (vec[mid] == k) {  
            return mid;  
        }  

        // If k is smaller, search in the left half
        else if (vec[mid] > k) {
            right = mid - 1;  
        }  

        // If k is larger, search in the right half
        else {  
            left = mid + 1;  
        }  
    }  

    // If k is not found, it should be inserted at the end
    return left;  
}  

int main() {  
   
    std::vector<int> vec1 = {1, 3, 5, 6, 7, 8};  
    int k1 = 5;  
    std::cout << searchInsertPositionOfK(vec1, k1) << "\n";  
    
    std::vector<int> vec2 = {1, 3, 5, 6, 7, 8};  
    int k2 = 2;  
    std::cout << searchInsertPositionOfK(vec2, k2) << "\n";  
    
    std::vector<int> vec3 = {1, 3, 5, 6, 7, 8};  
    int k3 = 9;  
    std::cout << searchInsertPositionOfK(vec3, k3) << "\n";  
}
 
 
 
/*
run:
 
2
1
6
 
*/

 



answered May 10, 2025 by avibootz
edited May 10, 2025 by avibootz
...