1744.你能在你最喜欢的那天吃到你最喜欢的糖果吗?
链接:1744.你能在你最喜欢的那天吃到你最喜欢的糖果吗?
难度:Medium
标签:数组、前缀和
简介:给你一个下标从 0 开始的正整数数组 candiesCount ,其中 candiesCount[i] 表示你拥有的第 i 类糖果的数目。同时给你一个二维数组 queries ,其中 queries[i] = [favoriteTypei, favoriteDayi, dailyCapi] 。请你返回得到的数组 answer 。
题解 1 - typescript
- 编辑时间:2021-06-01
- 执行用时:240ms
- 内存消耗:73MB
- 编程语言:typescript
- 解法介绍:计算总共能吃到的糖数。
function canEat(candiesCount: number[], queries: number[][]): boolean[] {
const sum = candiesCount.reduce<number[]>((list, cur, i, arr) => {
list[i] = (i === 0 ? 0 : list[i - 1]) + cur;
return list;
}, []);
const check = ([type, day, count]: number[]): boolean => {
const x1 = day + 1;
const y1 = (day + 1) * count;
const x2 = type === 0 ? 1 : sum[type - 1] + 1;
const y2 = sum[type];
return !(x1 > y2 || y1 < x2);
};
return queries.map(check);
}