//whenever there is sorted array first think of binary search int binarySearch(vector<int> &ar, int target) { int low = 0, high = ar.size() - 1; while (low <= high) { int mid = low + (high - low) / 2; if (ar[mid] == target) return mid; else if (ar[mid] > target) high = mid - 1; // go to left else low = mid + 1; // go to right } return -1; // if element is not found } //the above solution is only ,if array is sorted in ascending order //for descending sorted array condition's to go to left and right reverse //time complexity :- O(logn);