ในปัญหานี้ เราได้รับอาร์เรย์ arr[] ที่ประกอบด้วยองค์ประกอบที่เป็นบวก n รายการ หน้าที่ของเราคือค้นหาค่าต่ำสุดในอาร์เรย์โดยไม่ต้องใช้ตัวดำเนินการเชิงสัมพันธ์
ตัวดำเนินการเชิงสัมพันธ์ในการเขียนโปรแกรมคือตัวดำเนินการที่ใช้ตรวจสอบความสัมพันธ์ระหว่างสองค่า ชอบ ==(เท่ากับ) มากกว่า (>) น้อยกว่า (<) เป็นต้น
มาดูตัวอย่างเพื่อทำความเข้าใจปัญหากัน
อินพุต
arr[] = {4, 2, 5, 1, 7}
ผลลัพธ์
1
คำอธิบาย
The smallest element is 1.
แนวทางการแก้ปัญหา
วิธีง่ายๆ ในการแก้ปัญหาคือการใช้ลูปและตรวจสอบองค์ประกอบขั้นต่ำจากองค์ประกอบทั้งหมดของอาร์เรย์ สำหรับการค้นหาองค์ประกอบขั้นต่ำระหว่างองค์ประกอบที่กำหนดทั้งสอง เราสามารถเปรียบเทียบว่าองค์ประกอบใดกลายเป็น 0 ก่อนเมื่อเราลดค่าทั้งสองลง 1
โปรแกรมเพื่อแสดงการทำงานของโซลูชันของเรา
ตัวอย่าง
#include <iostream> using namespace std; int findMin(int a, int b) { int minVal = 0; while (a && b) { minVal++; a--; b--; } return minVal; } int findMinimumElement(int arr[], int n) { int minVal = arr[0]; int i = (n - 1) ; while(i){ minVal = findMin(minVal, arr[i]); i--; } return minVal; } int main() { int arr[] = {4, 2, 5, 1, 7}; int n = sizeof(arr) / sizeof(arr[0]); cout<<"The minimum element is "<<findMinimumElement(arr, n); return 0; }
ผลลัพธ์
The minimum element is 1