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