ในปัญหานี้ เราได้รับอาร์เรย์ arr[] ที่ประกอบด้วยจำนวนเต็ม n ตัว งานของเราคือสร้างโปรแกรมเพื่อค้นหาความแตกต่างสูงสุดระหว่างดัชนีของตัวเลขสองจำนวนที่ต่างกันใน C++
คำอธิบายโค้ด - ในที่นี้ เราจำเป็นต้องค้นหาความแตกต่างสูงสุดระหว่างดัชนีของค่าจำนวนเต็มของอาร์เรย์ เนื่องจากจำนวนเต็มทั้งสองต่างกัน
มาดูตัวอย่างเพื่อทำความเข้าใจปัญหากัน
อินพุต
arr[] = {4, 1, 3, 2, 1, 2, 4}
ผลลัพธ์
5
คำอธิบาย
ความแตกต่างระหว่างดัชนี 0, องค์ประกอบ 4 และดัชนี 5, องค์ประกอบ 2
แนวทางการแก้ปัญหา
เราจะพยายามค้นหาความแตกต่างสูงสุดที่เป็นไปได้ระหว่างดัชนีขององค์ประกอบที่ไม่ซ้ำจากอาร์เรย์
โปรแกรมแสดงการใช้งานโซลูชันของเรา
ตัวอย่าง
#include <iostream> using namespace std; int maximum(int a, int b){ if(a > b) return a; return b; } int CalcMaxIndDiff(int a[], int n) { int indDiff1 = 0, indDiff2 = 0; int i = 0; while(i < (n - 1)){ if(a[0] != a[i]){ indDiff2 = i; break; } i++; } i = (n - 1) ; while(i > 0){ if(a[0] != a[i]){ indDiff1 = i; break; } i--; } return maximum(indDiff1, indDiff2); } int main() { int arr[] = { 4, 1, 3, 2, 1, 2, 4 }; int n = 7; cout<<"The maximum difference between the index of any two different numbers is "<<CalcMaxIndDiff(arr, n); return 0; }
ผลลัพธ์
The maximum difference between the index of any two different numbers is 5