คำชี้แจงปัญหา
จากอาร์เรย์ arr[] ค้นหาค่าสูงสุดของ (arr[i] – i) – (arr[j] – j) โดยที่ i ไม่เท่ากับ j โดยที่ i และ j แปรผันจาก 0 ถึง n-1 และ n คือขนาดของอาร์เรย์อินพุต arr[]
หากอาร์เรย์อินพุตคือ {7, 5, 10, 2, 3} เราก็จะได้ค่าสูงสุด 9 ค่าดังนี้−
(องค์ประกอบ 10 – ดัชนี 2) - (องค์ประกอบ 2 – ดัชนี 3) (10 – 2) – (2 – 3) =8 – (-1) =9
อัลกอริทึม
<ก่อน>1. ค้นหาค่าสูงสุดของ (arr[i] – i) ในอาร์เรย์ทั้งหมด2. ค้นหาค่าต่ำสุดของ (arr[i] – i) ในอาร์เรย์ทั้งหมด3. ส่งกลับค่าความแตกต่างของค่าที่สูงกว่าสองค่าตัวอย่าง
#includeใช้เนมสเปซ std;int getMaxDiff(int *arr, int n){ if (n <2) { cout <<"อินพุตไม่ถูกต้อง" < maxVal) { cout <<"Max =" < ผลลัพธ์
เมื่อคุณคอมไพล์และรันโปรแกรมข้างต้น มันสร้างผลลัพธ์ต่อไปนี้ -
ค่าสูงสุด =สูงสุด =7 - 0 ขั้นต่ำ =7 - 0 ขั้นต่ำ =5 - 1 สูงสุด =10 - 2 ขั้นต่ำ =2 - 3 9