字节跳动前端笔试算法题(没做出来的两道)

本文介绍了一个关于路径规划的算法问题,探讨了如何在有限的初始资源下,通过合理选择补给站来达到目标位置的方法。该算法考虑了资源消耗、补给站的分布及补给量,提出了一个有效的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 /*
    W  距离
    S  初始携带的水量
    arr  加油站数组
    tem 每个加油站可提供的水的数量

*/
function getCount(W, S, arr, tem) {
    const ret = [];
    if(S < arr[0]) {
        return -1
    }
    let count = 0;
    for(let i = 0; i < arr.length; i++) {
        if(W > S) {
            if(S >= arr[i]) {
                ret.push(tem[i]); 
                ret.sort((a, b) => a - b);
            }else {
                // 不足以到达下一个节点
                while(ret.length && S < arr[i]) {
                    S += ret.pop();
                    count ++;
                }
                ret.push(tem[i]); 
                ret.sort((a, b) => a - b);
                if(S < arr[i]) {
                    return -1;
                }
            }
        }else {
            return count;
        }
    }
    while(S < W && ret.length) {
        S += ret.pop();
        count ++;
    }
    if(S >= W) {
        return count;
    }else {
        return -1;
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值