สำหรับอาร์เรย์สองอาร์เรย์ที่กำหนดแต่ละขนาด N ภารกิจคือการค้นหาผลรวมสูงสุดโดยการเลือกองค์ประกอบ X จากองค์ประกอบอาร์เรย์ 1 และองค์ประกอบ Y จากอาร์เรย์ 2
ตอนนี้มาทำความเข้าใจสิ่งที่เราต้องทำโดยใช้ตัวอย่าง -
ป้อนข้อมูล
<ก่อน>arr1 ={1,2,3,4,5}; X=2arr2 ={1,3,5,2,7}; ป=3ผลผลิต
ผลรวมสูงสุดที่นี่คือ :24
คำอธิบาย − เรากำลังเลือกตัวเลข 2 ตัวจาก arr1 และ 3 จาก arr2 2 ที่ใหญ่ที่สุดของ arr1 คือ 4,5 และ 3 ที่ใหญ่ที่สุดของ arr2 คือ 3,5,7 ผลรวมของ 5 องค์ประกอบนี้คือ 24 ซึ่งสูงสุดตามความต้องการ
ป้อนข้อมูล
<ก่อน>arr1 ={10,13,16,14}; X=1arr2 ={4,1,2,1}; ป=2ผลผลิต
ผลรวมสูงสุดที่นี่คือ :22
คำอธิบาย − เรากำลังเลือก 1 หมายเลขจาก arr1 และ 2 จาก arr2 ที่ใหญ่ที่สุดของ arr1 คือ 16 และ 2 ที่ใหญ่ที่สุดของ arr2 คือ 4,2 ผลรวมของ 5 องค์ประกอบนี้คือ 22 ซึ่งสูงสุดตามความต้องการ
แนวทางที่ใช้ในโปรแกรมด้านล่างดังนี้
-
รับอาร์เรย์อินพุต arr1[] และ arr2[] และค่าสำหรับ X และ Y..
-
เรียงลำดับสองอาร์เรย์จากน้อยไปหามาก
-
ใช้องค์ประกอบ X สุดท้ายจาก arr1 และ Y จาก arr2 เนื่องจากจะเป็นค่าสูงสุด
-
ในที่สุด เราคืนค่าผลรวมขององค์ประกอบที่เลือกในขั้นตอนที่ 3 เนื่องจากจะเป็นค่าสูงสุด
-
หมายเหตุ:sort(arr[],int) จะถือว่าส่งคืนอาร์เรย์ที่จัดเรียง
ตัวอย่าง
#includeใช้เนมสเปซ std;int max_sum(int arr1[],int arr2[], int length,int X,int Y){ //สำหรับการเรียงลำดับอาร์เรย์ sort(arr1,length); เรียงลำดับ(arr2,ความยาว); int sum=0; int ฉัน; //การเพิ่มองค์ประกอบ X สุดท้ายจาก arr1 และองค์ประกอบ Y สุดท้ายจาก arr2 for(i=0;i ผลลัพธ์
หากเราเรียกใช้โค้ดข้างต้น เราจะได้ผลลัพธ์ดังต่อไปนี้ -
ผลรวมสูงสุดขององค์ประกอบ X+Y โดยการเลือกองค์ประกอบ X และ Y จากอาร์เรย์ที่ 1 และ 2 คือ 19