File tree Expand file tree Collapse file tree 4 files changed +62
-0
lines changed
153_find_minimum_in_rotated_sorted_array
154_find_minimum_in_rotated_sorted_array_ii Expand file tree Collapse file tree 4 files changed +62
-0
lines changed Original file line number Diff line number Diff line change 1+ all :
2+ gcc -O2 -o test minimum.c
Original file line number Diff line number Diff line change 1+ #include <stdio.h>
2+ #include <stdlib.h>
3+ #include <limits.h>
4+
5+ static int findMin (int * nums , int numsSize )
6+ {
7+ int lo = 0 ;
8+ int hi = numsSize - 1 ;
9+ int min = INT_MAX ;
10+ while (lo <= hi ) {
11+ int mid = lo + (hi - lo ) / 2 ;
12+ min = min < nums [mid ] ? min : nums [mid ];
13+ if (nums [mid ] > nums [hi ]) {
14+ lo = mid + 1 ;
15+ } else {
16+ hi = mid - 1 ;
17+ }
18+ }
19+ return min ;
20+ }
21+
22+ int main (int argc , char * * argv )
23+ {
24+ int i , count = argc - 1 ;
25+ int * nums = malloc (count * sizeof (int ));
26+ for (i = 0 ; i < count ; i ++ ) {
27+ nums [i ] = atoi (argv [i + 1 ]);
28+ }
29+ printf ("%d\n" , findMin (nums , count ));
30+ return 0 ;
31+ }
Original file line number Diff line number Diff line change 1+ all :
2+ gcc -O2 -o test minimum.c
Original file line number Diff line number Diff line change 1+ #include <stdio.h>
2+ #include <stdlib.h>
3+
4+ static int findMin (int * nums , int numsSize )
5+ {
6+ if (numsSize == 1 ) {
7+ return nums [0 ];
8+ }
9+ int i , j ;
10+ for (i = 1 ; i < numsSize ; i ++ ) {
11+ if (nums [i ] < nums [i - 1 ]) {
12+ return nums [i ];
13+ }
14+ }
15+ return nums [0 ];
16+ }
17+
18+ int main (int argc , char * * argv )
19+ {
20+ int i , count = argc - 1 ;
21+ int * nums = malloc (count * sizeof (int ));
22+ for (i = 0 ; i < count ; i ++ ) {
23+ nums [i ] = atoi (argv [i + 1 ]);
24+ }
25+ printf ("%d\n" , findMin (nums , count ));
26+ return 0 ;
27+ }
You can’t perform that action at this time.
0 commit comments