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;
}

输入

{ { 1, 3 }, { 4, 7 }, { 8, 11 } }, 4

输出

2

更新于: 15-03-2022

126 人次浏览

开启你的 职业生涯

完成课程取得认证

入门
广告
© . All rights reserved.