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

โปรแกรมค้นหาความแตกต่างสูงสุดระหว่างดัชนีของตัวเลขสองตัวใด ๆ ใน C++


ในปัญหานี้ เราได้รับอาร์เรย์ 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