Square using Two pointer approach

Run Settings
LanguageC++
Language Version
Run Command
#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; }
Editor Settings
Theme
Key bindings
Full width
Lines