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

C++-এ অ্যারে রোটেশনের সবচেয়ে বড় i*arr[i] সাম


একটি অ্যারে arr দেওয়া আছে। অ্যারের সব রোটেশনের জন্য i*arr[i] এর সাম বের করে স 그중 ম্যাক্সিমামটি প্রিন্ট করতে হবে।

উদাহরণ: arr = {4, 8, 1, 5} -> আউটপুট: ৩৭

ব্যাখ্যা: সব রোটেশন ও তাদের সাম: {4,8,1,5} = 0*4+1*8+2*1+3*5 = 25 {8,1,5,4} = 0*8+1*1+2*5+3*4 = 23 {1,5,4,8} = 0*1+1*5+2*4+3*8 = 37 (ম্যাক্স) {5,4,8,1} = 0*5+1*4+2*8+3*1 = 23

সহজ সমাধান: O(n²) - প্রতিটি রোটেশনের সাম ক্যালকুলেট। দক্ষ সমাধান: O(n) - আগের রোটেশনের সাম থেকে পরবর্তী রোটেশনের সাম ক্যালকুলেট করার ফর্মুলা: nextSum = currentSum - (arraySum - arr[i-1]) + arr[i-1]*(n-1)।

উদাহরণ

#include<iostream>
using namespace std;

int findMax(int a, int b){
    if(a>b) return a; return b;
}

int calculateMaxSum(int arr[], int n){
    int maxSum = 0, sum = 0;
    for (int i=0; i

আউটপুট

The maximum sum of all the rotation of the array is 37

দক্ষ সমাধান (O(n)):

int calculateMaxSum(int arr[], int n){
    int arraySum = 0, currentSum = 0, nextSum;
    for (int i=0; i

  1. C++-এ বাইনারি ট্রির প্রতিটি লেভেলে নন-লিফ নোডের ম্যাক্সিমাম সাম

  2. নির্দিষ্ট যোগফল দিয়ে সব পেয়ার প্রিন্ট করা C++-তে

  3. C++-এ অ্যারেতে সর্বোচ্চ ইকুইলিব্রিয়াম যোগফল

  4. C++-এ সম অ্যারে পাজল (Sum Array Puzzle) সমাধান