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

ระยะห่างสูงสุดระหว่างองค์ประกอบเดียวกันสองครั้งในอาร์เรย์ในC


เราได้รับอาร์เรย์ของจำนวนเต็ม อาร์เรย์มีองค์ประกอบเดียวกันหลายครั้ง งานนี้คือการหาระยะห่างสูงสุดระหว่างสององค์ประกอบที่เหมือนกันของอาร์เรย์ เราจะเลือกแต่ละองค์ประกอบจากอาร์เรย์โดยเริ่มจากด้านซ้าย จากนั้นเราจะพบการเกิดขึ้นครั้งสุดท้ายของหมายเลขเดียวกันนั้นและเก็บความแตกต่างระหว่างดัชนีต่างๆ ตอนนี้หากส่วนต่างนี้สูงสุดแล้วส่งคืน

ป้อนข้อมูล

Arr[] ={ 1,2,4,1,3,4,2,5,6,5 }

ผลผลิต −ระยะห่างสูงสุดระหว่างองค์ประกอบเดียวกันสองครั้งในอาร์เรย์ − 4

คำอธิบาย − ตัวเลขซ้ำกับดัชนี −

<ก่อน>1. 1 ดัชนีแรก 0, ดัชนีสุดท้าย 3 ระยะทาง=3-0-1=22 2 ดัชนีแรก 1 ดัชนีสุดท้าย 6 ระยะทาง=6-1-1=43 5, ดัชนีแรก 7, ดัชนีสุดท้าย 9 Distance=9-7-1=1ระยะห่างสูงสุดระหว่างองค์ประกอบเดียวกันสองครั้งที่เกิดขึ้น:4

ป้อนข้อมูล

Arr[] ={ 10,20,1,10,10,21,12,0 }

ผลผลิต −ระยะห่างสูงสุดระหว่างองค์ประกอบเดียวกันสองครั้งในอาร์เรย์ − 3

คำอธิบาย − ตัวเลขซ้ำกับดัชนี −

<ก่อน>1. 10 ดัชนีแรก 0, ดัชนีสุดท้าย 4 ระยะทาง=4-0-1=3ระยะห่างสูงสุดระหว่างสองรายการที่เกิดขึ้นขององค์ประกอบเดียวกัน :3

หมายเหตุ − หากอาร์เรย์อินพุตไม่มีตัวเลขซ้ำ ให้คืนค่า -1

แนวทางที่ใช้ในโปรแกรมด้านล่างมีดังนี้

  • เราใช้อาร์เรย์จำนวนเต็มที่มีตัวเลขซ้ำเป็น Arr[]

  • ฟังก์ชัน maxDistance( int arr[],int n) ใช้เพื่อคำนวณระยะทางสูงสุดระหว่างสองรายการที่เกิดขึ้นขององค์ประกอบเดียวกัน

  • เราเริ่มต้นตัวแปร maxD ด้วย -1

  • ภายใน for วนรอบอาร์เรย์ของจำนวนเต็มตั้งแต่ต้น

  • ในการซ้อนสำหรับวนรอบองค์ประกอบที่เหลือและค้นหาการทำซ้ำถ้ามี ( ถ้า ( arr[i] ==arr[j] )

  • หากเป็นจริงให้คำนวณความแตกต่างระหว่างตัวเลขโดยลบดัชนี ( temp=j-i-1)

  • หากพบค่านี้เป็นค่าสูงสุดแล้ว ให้เก็บไว้ใน maxD

  • คืนค่า maxD หลังจากผ่านทั้งอาร์เรย์

ตัวอย่าง

#include #include int maxDistance(int arr[],int n){ ขนาด int =n; int maxD =-1; สำหรับ (int i =0; i อุณหภูมิ? maxD:ชั่วคราว; } return maxD;}// รหัสไดรเวอร์ main(){ int Arr[] ={1,2,4,1,3,4,2,5,6,5}; printf("ระยะห่างสูงสุดระหว่างองค์ประกอบเดียวกันสองครั้งในอาร์เรย์:%d", maxDistance(Arr,10) ); คืนค่า 0;}

ผลลัพธ์

หากเราเรียกใช้โค้ดข้างต้น มันจะสร้างผลลัพธ์ต่อไปนี้ -

ระยะห่างสูงสุดระหว่างองค์ประกอบเดียวกันสองครั้งในอาร์เรย์ − 4