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

นับองค์ประกอบที่น้อยกว่าหรือเท่ากับค่าที่กำหนดในอาร์เรย์ที่หมุนที่เรียงลำดับแล้วใน C++


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