44
55// import './string/main'
66
7- import './动态规划/main'
7+ // import './动态规划/main'
88
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