Leetcode 1094.拼车 差分
生活随笔
收集整理的這篇文章主要介紹了
Leetcode 1094.拼车 差分
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
思路:
這道題有很多種解法,剛好最近在學差分,就用差分做吧。首先是初始沒有乘客,差分diff數組各項為0,不用求差構造差分數組了。接著是每一次乘車方案,起點站需要加上乘客數,終點站需要減去乘客數。注意:乘車區間是前閉后開的,因為終點站乘客下車了以后還可以繼續拉客。(這里坑了我一會兒)
參考代碼:
class Solution { public:bool carPooling(vector<vector<int>>& trips, int capacity) {int diff[1005] = {0};int n = trips.size();int num, first, last;for(int i = 0; i < n; i++){num = trips[i][0];first = trips[i][1];last = trips[i][2];diff[first] += num;diff[last] -= num;}for(int i = 1; i < 1005; i++)diff[i] += diff[i-1];for(int i = 0; i < 1005; i++)if(diff[i] > capacity)return false;return true;} };總結
以上是生活随笔為你收集整理的Leetcode 1094.拼车 差分的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 28335的CAN总线学习笔记
- 下一篇: Leetcode 35.搜索插入位置 二