File tree 5 files changed +104
-0
lines changed
5 files changed +104
-0
lines changed Original file line number Diff line number Diff line change
1
+ var longestCommonPrefix = function ( strs ) {
2
+ if ( ! strs . length ) return "" ;
3
+
4
+ let prefix = strs [ 0 ] ;
5
+
6
+ for ( let i = 1 ; i < strs . length ; i ++ ) {
7
+ while ( strs [ i ] . indexOf ( prefix ) !== 0 ) {
8
+ prefix = prefix . slice ( 0 , - 1 ) ;
9
+ if ( prefix === "" ) return "" ;
10
+ }
11
+ }
12
+
13
+ return prefix ;
14
+ } ;
Original file line number Diff line number Diff line change
1
+ var addTwoNumbers = function ( l1 , l2 ) {
2
+ const dummyHead = new ListNode ( ) ;
3
+ let carry = 0 ;
4
+ let currentNode = dummyHead ;
5
+
6
+ while ( l1 || l2 || carry ) {
7
+ const sum = ( l1 ?. val || 0 ) + ( l2 ?. val || 0 ) + carry ;
8
+
9
+ carry = Math . floor ( sum / 10 ) ;
10
+
11
+ currentNode . next = new ListNode ( sum % 10 ) ;
12
+
13
+ currentNode = currentNode . next ;
14
+
15
+ l1 = l1 ?. next ;
16
+ l2 = l2 ?. next ;
17
+ }
18
+
19
+ return dummyHead . next ;
20
+ } ;
Original file line number Diff line number Diff line change
1
+ var addBinary = function ( a , b ) {
2
+ let i = a . length - 1 ;
3
+ let j = b . length - 1 ;
4
+ let carry = 0 ;
5
+ let result = '' ;
6
+
7
+ while ( i >= 0 || j >= 0 || carry ) {
8
+ const bitA = i >= 0 ? parseInt ( a [ i ] , 10 ) : 0 ;
9
+ const bitB = j >= 0 ? parseInt ( b [ j ] , 10 ) : 0 ;
10
+
11
+ const sum = bitA + bitB + carry ;
12
+ result = ( sum % 2 ) + result ;
13
+ carry = Math . floor ( sum / 2 ) ;
14
+
15
+ i -- ;
16
+ j -- ;
17
+ }
18
+
19
+ return result ;
20
+ } ;
Original file line number Diff line number Diff line change
1
+ var mySqrt = function ( x ) {
2
+ if ( x === 0 || x === 1 ) return x ;
3
+
4
+ let left = 1 ,
5
+ right = x ,
6
+ result = 0 ;
7
+
8
+ while ( left <= right ) {
9
+ const mid = Math . floor ( ( left + right ) / 2 ) ;
10
+
11
+ if ( mid * mid === x ) {
12
+ return mid ;
13
+ } else if ( mid * mid < x ) {
14
+ result = mid ;
15
+ left = mid + 1 ;
16
+ } else {
17
+ right = mid - 1 ;
18
+ }
19
+ }
20
+
21
+ return result ;
22
+ } ;
Original file line number Diff line number Diff line change
1
+ var reverse = function ( x ) {
2
+ const INT_MIN = - ( 2 ** 31 ) ;
3
+ const INT_MAX = 2 ** 31 - 1 ;
4
+
5
+ let result = 0 ;
6
+
7
+ while ( x !== 0 ) {
8
+ const digit = x % 10 ;
9
+ x = ( x / 10 ) | 0 ;
10
+
11
+ if (
12
+ result > Math . floor ( INT_MAX / 10 ) ||
13
+ ( result === Math . floor ( INT_MAX / 10 ) && digit > 7 )
14
+ ) {
15
+ return 0 ;
16
+ }
17
+ if (
18
+ result < Math . ceil ( INT_MIN / 10 ) ||
19
+ ( result === Math . ceil ( INT_MIN / 10 ) && digit < - 8 )
20
+ ) {
21
+ return 0 ;
22
+ }
23
+
24
+ result = result * 10 + digit ;
25
+ }
26
+
27
+ return result ;
28
+ } ;
You can’t perform that action at this time.
0 commit comments