Quick actions

cmd+k|ctrl+k

Navigation

Languages

Square using Two pointer approach

Snippet info

Language

Cpp

Visibility

public

Author

amangoyal1727

Created

2021-05-26T19:12:13.367184Z

Updated

2021-05-26T19:12:13.367184Z

#include <iostream>
#include<vector>
using namespace std;

int main() {
    int num[] = {-7,-3,-2 ,-2,-1};
    int size = sizeof(num)/sizeof(num[0]);
    vector<int> res;
    
    int i;
    
    
    bool flag = false;
    
    for(i=0; i<size;i++){
        if(num[i]>=0){
            flag = true;
            break;
        }
    }
    
    
    if(flag==false){
        
        for(int k=size-1 ; k>=0 ; k--){
            res.push_back(num[k]*num[k]);
        }
        
        for(int p =0 ; p<res.size(); p++){
            cout<<res[p]<<" ";
        }
        
        return 0;
    }
    
    
    
    if(i==0){
        res.push_back(num[i]*num[i]);
        for(int p =0 ; p<res.size(); p++){
            cout<<res[p]<<" ";
        }
        return 0;
    }else{
        
        int j = i-1;
        
        while(j>=0 && i<=size-1){
            
            if((num[i]*num[i])>(num[j]*num[j])){
                res.push_back(num[j]*num[j]);
                j--;
            }else{
                res.push_back(num[i]*num[i]);
                i++;
            }
            
        }
        
        while(j>=0){
            res.push_back(num[j]*num[j]);
            j--;
        }
        
        while(i<=size-1){
            res.push_back(num[i]*num[i]);
            i++;
        }
    }
    for(int p =0 ; p<res.size(); p++){
            cout<<res[p]<<" ";
    }
    
    return 0;

}
INFO