T1:leetcode.933 最近的请求次数
解法一:
class RecentCounter {
private:
int count = 0;
public:
RecentCounter() {
}
vector<int> time;
int ping(int t) {
count = 0;
time.push_back(t);
for (int i = 0; i < time.size(); ++i) {
if (time[i] >= (t - 3000) && time[i] <= t) count++;
}
return count;
}
};
/**
* Your RecentCounter object will be instantiated and called as such:
* RecentCounter* obj = new RecentCounter();
* int param_1 = obj->ping(t);
*/
解法二: 队列
class RecentCounter {
private:
queue<int> q;
public:
RecentCounter() {
}
int ping(int t) {
while (!q.empty()) {
int time = q.front();
if (time < t - 3000) {
q.pop();
} else {
break;
}
}
q.push(t);
return q.size();
}
};
T2:leetcode.2073 买票需要的时间
class Solution {
public:
int timeRequiredToBuy(vector<int>& tickets, int k) {
int res = 0;
for (int i = 0; i < tickets.size(); ++i) {
if (i <= k) {
res += min(tickets[i], tickets[k]);
} else {
res += min(tickets[i], tickets[k] - 1);
}
}
return res;
}
};