เราได้รับอาร์เรย์ของจำนวนเต็ม อาร์เรย์เป็นอาร์เรย์ที่หมุนเรียงลำดับ เป้าหมายคือการหาจำนวนองค์ประกอบในอาร์เรย์ที่เท่ากับหรือน้อยกว่าจำนวนที่กำหนด K
วิธีการคือสำรวจทั้งอาร์เรย์และนับองค์ประกอบดังกล่าวซึ่งน้อยกว่าหรือเท่ากับ K
อินพุต
Arr[]= { 1,2,3,4,9,8,10 } K=4
ผลลัพธ์
Elements less than or equal to 4 : 4
คำอธิบาย − องค์ประกอบ <=4 คือ 1,2,3,4 Count=4
อินพุต
Arr[]= { 5,3,6,1,8,100,12,31 } K=3
ผลลัพธ์
Elements less than or equal to 3: 2
คำอธิบาย − องค์ประกอบ <=3 คือ 1,3 Count=2
แนวทางที่ใช้ในโปรแกรมด้านล่างมีดังนี้
-
อาร์เรย์จำนวนเต็ม Arr[] ใช้เพื่อเก็บจำนวนเต็ม K เพื่อแสดงตัวเลข
-
จำนวนเต็ม 'n' เก็บความยาวของอาร์เรย์
-
การนับตัวแปรใช้เก็บจำนวนตัวเลขที่น้อยกว่าหรือเท่ากับ K
-
สำรวจอาร์เรย์เมื่อเริ่มจากองค์ประกอบแรก ( index=0 )
-
หากองค์ประกอบปัจจุบัน <=K การเพิ่มขึ้นนับ
-
นับมีผลลัพธ์ที่ต้องการ
-
แสดงผล
ตัวอย่าง
#include <iostream> using namespace std; int main(){ int Arr[]= { 4,5,8,1,3,7,10,9,11 }; int k=7; int n=sizeof(Arr)/sizeof(Arr[0]); int count=0; for(int i=0;i<n;i++) if(Arr[i]<=k) count++; std::cout<<"Elements less than or equal to "<<k<<" in given sorted rotated array : "<<count; return 0; }
ผลลัพธ์
Elements less than or equal to 7 in given sorted rotated array : 5