C++ 代码来计算未读章节数
假设我们有一个 P 对数组。其中 P[i] 以 (l, r) 形式出现,并有另一个数字 k。考虑我们准备读一本有 n 章的书。书的每一页都属于一章,而每一章都至少包含一页。我们已经读了一些页,并将编号为 k 的页面标记为未读的第一页。我们必须找出我们尚未完全读完的章节数。P[i] 表示章节页码范围。
因此,如果输入类似 P = [[1, 3], [4, 7], [8, 11]]; k = 4,则输出将为 2,因为我们已经读了第一章,还有另外两章可以读。
步骤
要解决此问题,我们将按照以下步骤操作 −
n := size of P for initialize i := 1, when i <= n, update (increase i by 1), do: if k >= P[i - 1, 0] and k <= P[i - 1, 1], then: return n - i + 1 return 0
示例
让我们看下面的实现以更好地理解 −
#include <bits/stdc++.h> using namespace std; int solve(vector<vector<int>> P, int k){ int n = P.size(); for (int i = 1; i <= n; i++){ if (k >= P[i - 1][0] && k <= P[i - 1][1]) return n - i + 1; } return 0; } int main(){ vector<vector<int>> P = { { 1, 3 }, { 4, 7 }, { 8, 11 } }; int k = 4; cout << solve(P, k) << endl; }
Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.
输入
{ { 1, 3 }, { 4, 7 }, { 8, 11 } }, 4
输出
2
广告