เราได้รับอาร์เรย์ของจำนวนเต็ม อาร์เรย์เป็นอาร์เรย์ที่หมุนเรียงลำดับ เป้าหมายคือการหาจำนวนองค์ประกอบในอาร์เรย์ที่เท่ากับหรือน้อยกว่าจำนวนที่กำหนด 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