js-算法

华为机试
动态规划

计算出租车的实际里程(逢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)

全排列
决策树

  1. 选择列表 - 当前可以做的选择
  2. 路径 - 已经做出的选择
  3. 结束条件

回溯算法秒杀所有排列-组合-子集问题

['walk dog', 'clean toilte', 'order food' ]

学习算法和刷题的框架思维

从整体到细节,自顶向下,从抽象到具体的框架思维

  1. 先学习像数组、链表这种基本数据结构的常用算法,比如单链表翻转,前缀和数组,二分搜索等。
  2. 学会基础算法之后,不要急着上来就刷回溯算法、动态规划这类笔试常考题,而应该先刷二叉树,先刷二叉树,先刷二叉树,因为二叉树是最容易培养框架思维的,而且大部分算法技巧,本质上都是树的遍历问题。

124. 二叉树中的最大路径和- BST

var traverse = function(root) {
    // 前序位置
    traverse(root.left);
    // 中序位置
    traverse(root.right);
    // 后序位置
}

BST 中序遍历 前序遍历 和后序遍历分别是啥意思??

跳台阶

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值