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

โค้ด C++ หาตัวเลขสุดท้ายหลังเกมลบ Min-Max

สมมติว่าเรามีอาร์เรย์ A ขนาด n มีตัวเลข n ตัวบนกระดาน อมลและบิมลเล่นเกมสลับรอบ ในแต่ละรอบ เลือกตัวเลขหนึ่งลบออก อมลเล่นก่อน อมลต้องการลดตัวเลขสุดท้ายที่เหลือให้น้อยที่สุด บิมลต้องการเพิ่มมากที่สุด หาตัวเลขที่เหลือสุดท้าย

เช่น ถ้าอินพุตคือ A = [2, 1, 3] เอาต์พุตจะเป็น 2 เพราะอมลลบ 3 บิมลลบ 1 เหลือ 2

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

n := ขนาดของ A
เรียงลำดับ A
return A[floor((n - 1)/2)]

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

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

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

int main() {
    vector<int> A = { 2, 1, 3 };
    cout << solve(A) << endl;
}

อินพุต

{ 2, 1, 3 }

เอาต์พุต

2