1.链表
class ListNode {
constructor(v,next){
this.v = v;
this.next = next;
}
link(next){
this.next = next;
return this;
}
linkArr(arr){
let cur = this;
for(let i = 0,len = arr.length; i < len ; i++){
cur.next = new ListNode(arr[i]);
cur = cur.next;
}
return this;
}
toString(){
for(let cur = this ; !!cur ; cur = cur.next){
console.log(cur.v);
}
}
}
const head = new ListNode(5).linkArr([5,4,1,0,0,4,561,6545,1,2,3,54,56]);
console.log(head.toString());
2.dp
求最值=》优化(memo、dp)的穷举法
子问题最值=>原问题最值
dp跟递归的区别就是自下而上、自上而下
斐波那契数列
const fib = (n)=>{
if(n<1){
return 0
}
let prev = cur = 1;
for(let i = 3; i <= n ;i++){
[cur,prev] = [cur+prev,cur]
}
return cur;
}