class Solution {
public:
    int search(vector<int>& nums, int k) {
        int low= 0 ;
        int high = nums.size()-1;

        while(low<= high){
            int mid = low+(high - low)/2;

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

            if(nums[low]<= nums[mid]){
                if(nums[low]<= k && k < nums[mid]){
                    high =mid -1;
                }else{
                    low = mid + 1;
                }
            }
            else{
                if(nums[mid]<= k && k < nums[high]){
                    low = mid + 1;
                }else{
                    high =mid -1;
                }

            }
        }

        return -1;
    }
};

https://takeuforward.org/data-structure/search-element-in-a-rotated-sorted-array/