Simplest and fastest C++ solution O(lg N), you can't beat this!
Binary search: basically eliminate the impossible elements by half each time by exploiting the sorted property.\n\n        int findMin(vector &num) {\n         
Binary search: basically eliminate the impossible elements by half each time by exploiting the sorted property.\n\n        int findMin(vector<int> &num) {\n            int lo =0, hi = num.size()-1;\n            while(lo<hi){\n                  int mid=(lo+hi)/2;\n                  if(num[mid]>num[hi]) lo=mid+1;\n                  else hi=mid;\n            }\n            return num[lo];\n        }
[]