สมมติว่าเรามีอาร์เรย์ A ที่มีองค์ประกอบ n Amal ต้องการดูการแข่งขัน 90 นาทีและไม่มีการแบ่ง แต่ละนาทีอาจเป็นเรื่องที่น่าสนใจหรือน่าเบื่อก็ได้ หาก 15 นาทีติดต่อกันน่าเบื่อ Amal จะปิดทีวีทันที จะมี n นาทีที่น่าสนใจที่แสดงโดยอาร์เรย์ A เราต้องคำนวณว่า Amal จะดูเกมกี่นาที
ดังนั้นหากอินพุตเป็น A =[7, 20, 88] เอาต์พุตจะเป็น 35 เพราะหลังจาก 20 เขาจะยังคงดูเกมจนถึง 35 แล้วจึงปิด
ขั้นตอน
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
Define an array a of size: 100. n := size of A for initialize i := 1, when i <= n, update (increase i by 1), do: a[i] := A[i - 1] if a[i] - a[i - 1] > 15, then: Come out from the loop return minimum of (a[i - 1] + 15) and 90
ตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
#include <bits/stdc++.h> using namespace std; int solve(vector<int> A){ int i, a[100]; int n = A.size(); for (i = 1; i <= n; i++){ a[i] = A[i - 1]; if (a[i] - a[i - 1] > 15) break; } return min(a[i - 1] + 15, 90); } int main(){ vector<int> A = { 7, 20, 88 }; cout << solve(A) << endl; }
อินพุต
{ 7, 20, 88 }
ผลลัพธ์
35