Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

โปรแกรม C++ หาจำนวนคีย์บอร์ดที่ถูกขโมยน้อยที่สุด


คำอธิบายปัญหา

สมมติว่าเรามีอาร์เรย์ A n องค์ประกอบ มีร้านขายอุปกรณ์อิเล็กทรอนิกส์ ถูกขโมยคืนที่แล้ว คีย์บอร์ดทั้งหมดในร้านมีเลขลำดับเรียงจากจำนวนเต็ม x เช่น x=4 มี 3 ตัว เลขคือ 4,5,6 ถ้า x=10 มี 7 ตัว เลขคือ 10..16 หลังถูกขโมยเหลือ n ตัว มีเลขในอาร์เรย์ A ต้องการหาจำนวนคีย์บอร์ดที่ถูกขโมยน้อยที่สุด

ตัวอย่าง: A = [10, 13, 12, 8] ผลลัพธ์คือ 2 เพราะถ้า x=8 คีย์บอร์ดที่หายคือ 9 และ 11

ขั้นตอนการแก้ปัญหา

เรียงลำดับ A
n := ขนาดของ A
คืนค่า A[n-1] - A[0] + 1 - n

ตัวอย่างโค้ด C++

#include <bits/stdc++.h>
using namespace std;

int solve(vector<int> A) {
    sort(A.begin(), A.end());
    int n = A.size();
    return A[n - 1] - A[0] + 1 - n;
}

int main() {
    vector<int> A = { 10, 13, 12, 8 };
    cout << solve(A) << endl;
}

อินพุต

{ 10, 13, 12, 8 }

เอาต์พุต

2