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.