当前位置: 首页 > article >正文

力扣853.车队

力扣853.车队

题目解析及思路

题目要求求出到达终点时并排的车量,其中后车在追上前车时会降到同样的速度

可以看作一个数轴,每辆车的位置从大到小排序,如果前车被追上,后车的速度一定大于前车

即有(target - p1)/s1 < (target - p2)/s2,避免浮点数错误,转化成乘法计算

(long long)(target - p1) * s2 < (long long)(target - p2) * s1

  • 按照初始位置排序
    • 遍历每两辆车,如果满足后车追上前车
    • ans ++,同时更新速度为后车速度,继续判断

代码

class Solution {
    typedef pair<int,int> PII;
public:
    int carFleet(int target, vector<int>& position, vector<int>& speed) {
        int n = position.size();
        vector<PII> v;
        for(int i=0;i<n;i++)    
            v.emplace_back(position[i],speed[i]);

        sort(v.begin(),v.end(),[](PII a,PII b){
            return a.first > b.first;
        });

        int ans = 1;
        int p1 = v[0].first,s1 = v[0].second;
        for(int i=1;i<n;i++)
        {
            int p2 = v[i].first,s2 = v[i].second;
            if((long long)(target - p1) * s2 < (long long)(target - p2) * s1)
            {
                ans ++;
                //不用管中间的变速过程,即使p1会减小,s1会增大,后车只与前面紧邻的那辆车比较
                p1 = p2;
                s1 = s2;
            }
        }
        return ans;
    }
};

http://www.kler.cn/a/349923.html

相关文章:

  • 网易Android开发面试题200道及参考答案 (下)
  • CAPL高级应用
  • 飞牛 fnOS 安装8852be网卡驱动并成功连接
  • AWScurl笔记
  • 数组
  • Unity——从共享文件夹拉取资源到本地
  • 使用Python-pptx轻松批量添加水印
  • Zabbix自定义监控8080端口的连接数
  • uniapp 小程序0到1教程
  • 仿 Mac 个人网站开发 |项目复盘
  • 设计测试用例的方法
  • phpstorm+phpstudy 配置xdebug(无需开启浏览器扩展)
  • 【Python爬虫实战】XPath与lxml实现高效XML/HTML数据解析
  • 高效数据去重:Redis HyperLogLog的实战指南
  • 全面解析文档对象模型(DOM)及其操作(DOM的概念与结构、操作DOM节点、描述DOM树的形成过程、用DOMParser解析字符串为DOM对象)
  • 【去哪儿-注册安全分析报告-缺少轨迹的滑动条】
  • 最长公共子序列(LCS)
  • C#读取和写入txt文档(在unity中示例)
  • Android 关于引用unityLibrary依赖库无法加载so库问题或脚本报错问题
  • GPT4o,GPTo1-preview, 拼
  • 基于模型预测控制(MPC)储能控制策略-多目标哈里斯鹰(MOHHO)算法的储能容量配置方法
  • 一站式学习Wireshark
  • 低学历可以从事人工智能行业吗?
  • 初学51单片机之I2C总线与E2PROM以及UART简单实例应用
  • pytorch resnet源码分析
  • 【MYSQL】数据库基本操作----DQL(Data Query Language)---基本查询