计算出租车的实际里程(逢4跳过)
出租车司机自行修改了里程表,导致每次遇到4,就会跳过,比如4–>5、40–>50、400–>500
输入描述:里程表的显示里程
输出描述:里程表的实际里程
let n = prompt() // 输入的数字
let m = 0;
let more = 0;
while(m < n){
if(String(m).includes('4')){
let thisM = +String(m).replace('4', '5')
if(thisM <= n) {
more += (thisM - m)
} else {
break;
}
m = thisM
} else {
m++
}
}
console.log(n - more)
全排列
决策树
- 选择列表 - 当前可以做的选择
- 路径 - 已经做出的选择
- 结束条件
['walk dog', 'clean toilte', 'order food' ]
学习算法和刷题的框架思维
从整体到细节,自顶向下,从抽象到具体的框架思维
- 先学习像数组、链表这种基本数据结构的常用算法,比如单链表翻转,前缀和数组,二分搜索等。
- 学会基础算法之后,不要急着上来就刷回溯算法、动态规划这类笔试常考题,而应该先刷二叉树,先刷二叉树,先刷二叉树,因为二叉树是最容易培养框架思维的,而且大部分算法技巧,本质上都是树的遍历问题。
124. 二叉树中的最大路径和- BST
var traverse = function(root) {
// 前序位置
traverse(root.left);
// 中序位置
traverse(root.right);
// 后序位置
}
BST 中序遍历 前序遍历 和后序遍历分别是啥意思??