4
4
5
5
// import './string/main'
6
6
7
- import './动态规划/main'
7
+ // import './动态规划/main'
8
8
9
- // import './数组/main'
9
+ // import './数组/main'
10
+
11
+ // import './查找/main'
12
+
13
+ ( function ( target ) {
14
+ console . log ( target )
15
+ const result = [ ] ;
16
+ let start = 1 ;
17
+ let end = 2 ;
18
+ let sum = start + end ;
19
+ while ( start != end && end <= target ) {
20
+ if ( sum === target ) {
21
+ result . push ( getSubSequence ( start , end ) )
22
+ ++ b ;
23
+ sum += b ;
24
+ } else if ( sum > target ) {
25
+ sum -= start ;
26
+ ++ start
27
+ } else {
28
+ ++ end ;
29
+ // sum +=
30
+ }
31
+ }
32
+ return result ;
33
+ } )
34
+
35
+ function getSubSequence ( start , end ) {
36
+ const res = [ ] ;
37
+ for ( let i = start ; i < end ; i ++ ) {
38
+ res . push ( i )
39
+ }
40
+ return res ;
41
+ }
42
+
43
+ //动态规划最大和子序列
44
+ var maxSubArray = function ( nums ) {
45
+ // let ans = nums[0];
46
+ // let sum = 0;
47
+ // for (let i = 1; i < nums.length; i++) {
48
+ // if(sum > 0){
49
+ // sum += nums[i];
50
+ // } else {
51
+ // sum = nums[i];
52
+ // }
53
+ // ans = Math.max(ans, sum);
54
+ // }
55
+ // return ans
56
+ const dp = [ ] ;
57
+ dp [ 0 ] = nums [ 0 ] ;
58
+ let max = nums [ 0 ] ;
59
+ for ( let i = 1 ; i < nums . length ; i ++ ) {
60
+ dp [ i ] = Math . max ( dp [ i - 1 ] + nums [ i ] , nums [ i ] ) ;
61
+ max = Math . max ( max , dp [ i ] ) ;
62
+ }
63
+ return max ;
64
+ } ;
65
+
66
+ // console.log( maxSubArray([-2,1,-3,4,-1,2,1,-5,4]) )
67
+ function isFlag ( str ) {
68
+ const n = str . length - 1 ;
69
+ for ( let i = 0 ; i < n / 2 ; i ++ ) {
70
+ if ( str [ i ] !== str [ n - i ] ) {
71
+ return false ;
72
+ }
73
+ }
74
+ return true
75
+ }
76
+
77
+ function longestPalindrome ( str ) {
78
+ let res = '' ;
79
+ for ( let i = 0 ; i < str . length ; i ++ ) {
80
+ for ( let j = i + 1 ; j < str . length + 1 ; j ++ ) {
81
+ const s = str . substring ( i , j ) ;
82
+ if ( s . length < res . length ) continue ;
83
+ if ( isFlag ( s ) ) {
84
+ res = s ;
85
+ }
86
+ }
87
+ }
88
+ return res
89
+ }
90
+
91
+ // console.log( longestPalindrome("aacabdkacaa"))
92
+ const dp = [ ] ;
93
+
94
+ /**
95
+ * @param {number } n
96
+ * @return {number }
97
+ */
98
+ var fib = function ( n ) {
99
+ if ( n === 0 ) return 0 ;
100
+ if ( n === 1 ) return 1 ;
101
+ if ( fib . dp [ n ] ) return fib . dp [ n ] ;
102
+ fib . dp [ n ] = fib ( n - 1 ) + fib ( n - 2 ) ;
103
+ return fib . dp [ n ] ;
104
+ } ;
105
+ fib . dp = [ ] ;
106
+
107
+ var tribonacci = function ( n ) {
108
+ if ( n === 0 ) return 0 ;
109
+ if ( n === 1 ) return 1 ;
110
+ if ( n === 2 ) return 1 ;
111
+ if ( tribonacci . dp [ n ] ) return tribonacci . dp [ n ] ;
112
+ tribonacci . dp [ n ] = tribonacci ( n - 1 ) + tribonacci ( n - 2 ) + tribonacci ( n - 3 ) ;
113
+ return tribonacci . dp [ n ] ;
114
+ } ;
115
+ tribonacci . dp = [ ] ;
116
+
117
+ console . time ( )
118
+ console . log ( tribonacci ( 4 ) )
119
+ console . timeEnd ( )
0 commit comments