LeetCode 每日一题 1744.你能在你最喜欢的那天吃到你最喜欢的糖果吗?

LeetCode 每日一题 1744.你能在你最喜欢的那天吃到你最喜欢的糖果吗?


问题描述

在这里插入图片描述

简要思路

前缀和,主要是在于判断条件的边界值处理,注意以下两点:

  1. 从第 0 天开始开始吃糖,所以 favDay 要 + 1
  2. 会爆 int,要用 long

代码

class Solution {
    
    
public:
    vector<bool> canEat(vector<int>& candiesCount, vector<vector<int>>& queries) {
    
    
        int n = candiesCount.size();
        int m = queries.size();
        vector<bool> answer(m);
        vector<long> s(n);
        s[0] = candiesCount[0];

        for(int i = 1; i < n; i++){
    
    
            s[i] = s[i-1] + candiesCount[i];
        }

        for(int i = 0; i < m; i ++){
    
    
            long favType = queries[i][0];
            long favDay = queries[i][1] + 1;
            long daily = queries[i][2];
            long day = 0;
            if(favType == 0) answer[i] = (favDay <= s[favType]);
            else if(favDay <= s[favType] && favDay * daily > s[favType - 1]) answer[i] = true;
            else answer[i] = false;
        }

        return answer;
    }
};

猜你喜欢

转载自blog.csdn.net/qq_45438600/article/details/117433721