Рубрики

Элементы, до которых нет элементов больше в массиве

Для заданного массива целых чисел задача состоит в том, чтобы найти количество элементов, до которых все элементы меньше. Первый элемент всегда считается, так как перед ним нет другого элемента.

Примеры:

 Input :   arr[] = {10, 40, 23, 35, 50, 7}
 Output :  3
The elements are 10, 40 and 50.

 Input :   arr[] = {5, 4, 1}
 Output :  1

Наивный подход заключается в том, чтобы один за другим рассмотреть элемент и проверить все предыдущие элементы. Если элемент больше всех, увеличьте результат.

Эффективный метод заключается в сохранении максимального значения в массиве по каждому индексу, и если следующий элемент больше максимального значения, увеличивает результат и обновляет максимум с этим элементом.

Ниже приведена реализация этого метода.

C ++

// C ++ программа для поиска элементов, которые больше всех
// предыдущие элементы
#include <bits/stdc++.h>

using namespace std;

  
// Функция для подсчета элементов больше всех
// предыдущие элементы

int countElements(int arr[], int n)

{

    // Первый элемент всегда будет считаться большим

    // чем предыдущие

    int result = 1;

  

    // Сохраняем arr [0] как максимум

    int max_ele = arr[0];

  

    // Обход массива, начиная со второго элемента

    for (int i = 1; i < n; i++) {

        // Сравнить текущий элемент с максимумом

        // значение, если оно истинно, иначе продолжить

        if (arr[i] > max_ele) {

            // Обновляем максимальное значение

            max_ele = arr[i];

  

            // Увеличиваем результат

            result++;

        }

    }

  

    return result;

}

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

int main()

{

    int arr[] = { 10, 40, 23, 35, 50, 7 };

    int n = sizeof(arr) / sizeof(arr[0]);

    cout << countElements(arr, n);

    return 0;

}

Джава

// Java-программа для поиска элементов, которые больше всех
// предыдущие элементы

  

class Test {

    // Метод подсчета элементов больше всех

    // предыдущие элементы

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

    {

        // Первый элемент всегда будет считаться большим

        // чем предыдущие

        int result = 1;

  

        // Сохраняем arr [0] как максимум

        int max_ele = arr[0];

  

        // Обход массива, начиная со второго элемента

        for (int i = 1; i < n; i++) {

            // Сравнить текущий элемент с максимумом

            // значение, если оно истинно, иначе продолжить

            if (arr[i] > max_ele) {

                // Обновляем максимальное значение

                max_ele = arr[i];

  

                // Увеличиваем результат

                result++;

            }

        }

  

        return result;

    }

  

    // Метод драйвера

    public static void main(String[] args)

    {

        int arr[] = { 10, 40, 23, 35, 50, 7 };

        System.out.println(countElements(arr, arr.length));

    }

}

Python 3

# Python 3 программа для поиска
# элементы, которые больше
# чем все предыдущие элементы

  
# Функция для подсчета элементов
# которые больше всех
# предыдущие элементы

def countElements(arr, n):

  

    # Первый элемент всегда будет

    # считаться большим

    # чем предыдущие

    result = 1

  

    # Хранить обр [0]

    # как максимум

    max_ele = arr[0]

  

    # Начало массива хода

    # от второго элемента

    for i in range(1, n ): 

        # Сравнить текущий элемент

        # с максимумом

        # значение, если это правда

        # иначе продолжить

        if (arr[i] > max_ele):

              

            # Обновить

            # максимальное значение

            max_ele = arr[i]

  

            # Увеличение

            # результат

            result += 1

  

    return result

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

arr = [10, 40, 23

       35, 50, 7]

n = len(arr)

print(countElements(arr, n))

  
# Этот код добавлен
# от Smitha

C #

// C # программа для поиска элементов, которые
// больше всех предыдущих элементов

using System;

  

class GFG { 

      

    // Метод подсчета элементов, которые

    // больше, чем все предыдущие элементы

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

    {

        // Первый элемент всегда будет учитываться

        // больше предыдущих

        int result = 1;

  

        // Сохраняем arr [0] как максимум

        int max_ele = arr[0];

  

        // Обход массива, начиная со второго элемента

        for (int i = 1; i < n; i++) {

              

            // Сравнить текущий элемент с максимумом

            // значение, если оно истинно, иначе продолжить

            if (arr[i] > max_ele) {

                  

                // Обновляем максимальное значение

                max_ele = arr[i];

  

                // Увеличиваем результат

                result++;

            }

        }

  

        return result;

    }

  

    // Метод драйвера

    public static void Main()

    {

        int[] arr = { 10, 40, 23, 35, 50, 7 };

        Console.WriteLine(countElements(arr, arr.Length));

    }

}

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

PHP

<?php
// PHP программа для поиска элементов, которые
// больше, чем все предыдущие
// элементы

  
// Функция для подсчета элементов, которые
// больше, чем все предыдущие
// элементы

function countElements($arr, $n)

{

      

    // Первый элемент всегда будет

    // считается большим

    // чем предыдущие

    $result = 1;

  

    // Сохраняем arr [0]

    // как максимум

    $max_ele = $arr[0];

  

    // Начало массива

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

    for($i = 1; $i < $n; $i++)

    {

          

        // Сравнить текущий элемент

        // с максимальным значением

        // если это правда, в противном случае

        // Продолжить

        if ($arr[$i] > $max_ele

        {

              

            // Обновляем максимальное значение

            $max_ele = $arr[$i];

  

            // Увеличиваем результат

            $result++;

        }

    }

  

    return $result;

}

  

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

    $arr = array(10, 40, 23, 35, 50, 7);

    $n = sizeof($arr);

    echo countElements($arr, $n);

  
// Этот код предоставлен нитин митталь.
?>


Выход:

3

Сложность времени: O (n), где n — количество элементов на входе.
Вспомогательное пространство: O (1)

Эта статья предоставлена Сахилом Чхаброй . Если вы как GeeksforGeeks и хотели бы внести свой вклад, вы также можете написать статью с помощью contribute.geeksforgeeks.org или по почте статьи contribute@geeksforgeeks.org. Смотрите свою статью, появляющуюся на главной странице GeeksforGeeks, и помогите другим вундеркиндам.

Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.

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

Элементы, до которых нет элементов больше в массиве

0.00 (0%) 0 votes