คำชี้แจงปัญหา
กำหนดอาร์เรย์ของจำนวนเต็ม N คุณได้รับอนุญาตให้จัดเรียงองค์ประกอบของอาร์เรย์ใหม่ ภารกิจคือการหาค่าสูงสุดของ Σarr[i]*i โดยที่ i =0, 1, 2, .. n – 1.
หากอาร์เรย์อินพุต ={4, 1, 6, 2} ผลรวมสูงสุดจะเป็น 28 หากเราจัดเรียงองค์ประกอบใหม่ตามลำดับการจัดเรียง−
{1, 2, 4, 6} =(1 * 0) + (2 * 1) + (4 * 2) + (6 * 3) =28
อัลกอริทึม
<ก่อน>1. เรียงลำดับอาร์เรย์จากน้อยไปมาก2 วนซ้ำในอาร์เรย์และคูณแต่ละองค์ประกอบอาร์เรย์ด้วย 1 โดยที่ i =0, 1, 2, n – 1.3 ผลตอบแทนรวมตัวอย่าง
#includeใช้เนมสเปซ std;int getMaxSum(int *arr, int n){ sort(arr, arr + n); int sum =0; สำหรับ (int i =0; i ผลลัพธ์
เมื่อคุณคอมไพล์และรันโปรแกรมข้างต้น มันสร้างกำลังติดตามผลลัพธ์−
ผลรวมสูงสุด =28