File tree Expand file tree Collapse file tree 1 file changed +17
-14
lines changed
solution/0000-0099/0016.3Sum Closest Expand file tree Collapse file tree 1 file changed +17
-14
lines changed Original file line number Diff line number Diff line change 1-
2- int cmp (const void * a , const void * b ) { return * (int * ) a - * (int * ) b ; }
1+ int cmp (const void * a , const void * b ) {
2+ return (* (int * ) a - * (int * ) b );
3+ }
34
45int threeSumClosest (int * nums , int numsSize , int target ) {
56 qsort (nums , numsSize , sizeof (int ), cmp );
6- int closest = nums [0 ] + nums [1 ] + nums [2 ];
7-
8- for (int i = 0 ; i < numsSize - 2 ; i ++ ) {
7+ int ans = 1 << 30 ;
8+ for (int i = 0 ; i < numsSize ; ++ i ) {
99 int j = i + 1 , k = numsSize - 1 ;
1010 while (j < k ) {
11- int sum = nums [i ] + nums [j ] + nums [k ];
12- if (abs (sum - target ) < abs (closest - target )) {
13- closest = sum ;
11+ int t = nums [i ] + nums [j ] + nums [k ];
12+ if (t == target ) {
13+ return t ;
14+ }
15+ if (abs (t - target ) < abs (ans - target )) {
16+ ans = t ;
17+ }
18+ if (t > target ) {
19+ -- k ;
20+ } else {
21+ ++ j ;
1422 }
15- if (sum < target )
16- j ++ ;
17- else
18- k -- ;
1923 }
2024 }
21-
22- return closest ;
25+ return ans ;
2326}
You can’t perform that action at this time.
0 commit comments