Рубрики

Подсчитайте количество элементов, которые больше, чем любой из элементов в правой части массива

Дан массив Arr [] . Задача состоит в том, чтобы посчитать количество элементов Arr [i] в данном массиве так, чтобы один или несколько меньших элементов присутствовали справа от элемента Arr [i] в массиве.

Примеры:

Input: Arr[] = { 3, 9, 4, 6, 7, 5 }
Output: 3

Numbers that counts are: 9, 6, 7

9 – As all numbers are present after 9 are smaller than 9,
6 – 5 is smaller element present after it,
7 – 5 is smaller element which is present after it.

Input: Arr[] = { 3, 2, 1, 2, 3, 4, 5 }
Output: 2

Подходить:
Начните обход массива с последнего до первого элемента массива. Во время обхода поддерживайте переменную min, которая хранит минимальный элемент до сих пор, и переменную counter. Сравните переменную min с текущим элементом. Если переменная min меньше текущего элемента Arr [i] , увеличьте счетчик, а если min больше Arr [i], обновите min .

Ниже приведена реализация вышеуказанного подхода:

C ++

// реализация C ++
#include <bits/stdc++.h>

using namespace std;

  
// функция для возврата счета

int count_greater(int arr[], int n)

{

    int min = INT_MAX;

    int counter = 0;

  

    // Сравнение заданного элемента

    // с минимальным элементом до

    // произошло до сих пор.

    for (int i = n - 1; i >= 0; i--) {

        if (arr[i] > min) {

            counter++;

        }

  

        // Обновление переменной min

        if (arr[i] <= min) {

            min = arr[i];

        }

    }

  

    return counter;

}

  
// Код драйвера

int main()

{

    int arr[] = { 3, 2, 1, 2, 3, 4, 5 };

    int n = sizeof(arr) / sizeof(int);

  

    cout << count_greater(arr, n) << endl;

  

    return 0;

}

Джава

// Java реализация подхода

class GFG

{

  
// функция для возврата счета

static int count_greater(int arr[], int n)

{

    int min = Integer.MAX_VALUE;

    int counter = 0;

  

    // Сравнение заданного элемента

    // с минимальным элементом до

    // произошло до сих пор.

    for (int i = n - 1; i >= 0; i--)

    {

        if (arr[i] > min)

        {

            counter++;

        }

  

        // Обновление переменной min

        if (arr[i] <= min)

        {

            min = arr[i];

        }

    }

    return counter;

}

  
// Код драйвера

public static void main(String[] args)

{

    int arr[] = { 3, 2, 1, 2, 3, 4, 5 };

    int n = arr.length;

  

    System.out.println(count_greater(arr, n));

}

  
// Этот код предоставлен 29AjayKumar

python3

# Реализация Python3 для вышеуказанного подхода

import sys

  
# функция для возврата счета

def count_greater(arr, n) : 

  

    min = sys.maxsize; 

    counter = 0

  

    # Сравнение заданного элемента

    # с минимальным элементом до

    # произошло до сих пор.

    for i in range(n - 1, -1, -1) : 

        if (arr[i] > min) :

            counter += 1

      

        # Обновление переменной min

        if (arr[i] <= min) :

            min = arr[i]; 

  

    return counter; 

  
# Код драйвера

if __name__ == "__main__"

  

    arr = [ 3, 2, 1, 2, 3, 4, 5 ]; 

    n = len(arr); 

  

    print(count_greater(arr, n)); 

      
# Этот код предоставлен AnkitRai01

C #

// C # реализация подхода

using System;

  

class GFG

{

      
// функция для возврата счета

static int count_greater(int []arr, int n)

{

    int min = int.MaxValue;

    int counter = 0;

  

    // Сравнение заданного элемента

    // с минимальным элементом до

    // произошло до сих пор.

    for (int i = n - 1; i >= 0; i--)

    {

        if (arr[i] > min)

        {

            counter++;

        }

  

        // Обновление переменной min

        if (arr[i] <= min)

        {

            min = arr[i];

        }

    }

    return counter;

}

  
// Код драйвера

static public void Main ()

{

    int []arr = { 3, 2, 1, 2, 3, 4, 5 };

    int n = arr.Length;

      

    Console.Write(count_greater(arr, n));

}

  
// Этот код предоставлен ajit.

Выход:

2

Рекомендуемые посты:

Подсчитайте количество элементов, которые больше, чем любой из элементов в правой части массива

0.00 (0%) 0 votes