কম্পিউটার টিউটোরিয়াল

সি-তে K বার সingles মুভ ব্যবহার করে অ্যারে উপাদান সরানো


একটি অ্যারে আছে যাতে 1 থেকে n পর্যন্ত সংখ্যা শাফল করা অবস্থায় আছে। আরেকটি ইন্টিজার K দেওয়া আছে। N জন লোক ব্যাডমিন্টন খেলার জন্য কতারে দাঁড়িয়েছে। প্রথম দুজন খেলবে, হারা हुआ কতারের শেষে যাবে। জয়ী পরবর্তী ব্যক্তির সাথে খেলবে। এভাবে কেউ K বার التوالي জয় না করলেও চলবে।

কিউ: [2,1,3,4,5], K=2 → আউটপুট 5। ব্যাখ্যা: (2,1)→2 জয়, কিউ: [3,4,5,1] (2,3)→3 জয়, কিউ: [4,5,1,2] (3,4)→4 জয়, কিউ: [5,1,2,3] (4,5)→5 জয়, কিউ: [1,2,3,4] (5,1)→5 জয় (২ বার التوالي) → বিজয়ী 5।

অ্যালগরিদম

winner(arr, n, k)

Begin if k >= n-1 return n best_player := 0 win_count := 0 for each e in arr do if e > best_player then best_player := e if e is 0th element win_count := 1 else win_count++ end if if win_count >= k return best_player done return best_player End

উদাহরণ

#include <iostream> using namespace std; int winner(int arr[], int n, int k) {    if (k >= n-1) return n;    int best_player = 0, win_count = 0;    for (int i=0; i<n; i++) {       if (arr[i] > best_player) {          best_player = arr[i];          if (i) win_count = 1;       } else win_count += 1;       if (win_count >= k) return best_player;    }    return best_player; } main() {    int arr[] = {3,1,2};    int n = sizeof(arr)/sizeof(arr[0]);    int k = 2;    cout << winner(arr, n, k); }

আউটপুট

3

  1. C ভাষায় লিনিয়ার সার্চ ব্যবহার করে অ্যারেতে ন্যূনতম এলিমেন্ট খুঁজে বের করার পদ্ধতি

  2. C ভাষায় কিউ (Queue) থেকে এলিমেন্ট ডিলিট করার ব্যাখ্যা

  3. C-তে ন্যূনতম তুলনার মাধ্যমে অ্যারে এর সর্বাধিক ও সর্বনিম্ন মান খুঁজে বের করা

  4. C-তে লিংকড লিস্ট ব্যবহার করে প্রায়োরিটি কিউ (Priority Queue using Linked List)