Рубрики

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

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

Примеры :

Input : arr[] = {2, 8, 7, 1, 5};
Output : 2  1  5  
The output three elements have two or
more greater elements
      
Input  : arr[] = {7, -2, 3, 4, 9, -1};
Output : -2  3  4 -1  

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

C ++

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

using namespace std;

  

void findElements(int arr[], int n)

{

    // Выбрать элементы один за другим и

    // считать большие элементы. Если

    // количество больше 2, печать

    // этот элемент.

    for (int i = 0; i < n; i++)

    {

        int count = 0;

        for (int j = 0; j < n; j++)

            if (arr[j] > arr[i])

                count++;

  

        if (count >= 2)

            cout << arr[i] << " ";

    }

}

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

int main()

{

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

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

    findElements(arr, n);

    return 0;

}

Джава

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

import java.util.*;

import java.io.*;

  

class GFG

{

      

static void findElements(int arr[], 

                            int n)

{

    // Выбрать элементы один за другим

    // и считать больше элементов.

    // Если число больше 2,

    // распечатать этот элемент.

    for (int i = 0; i < n; i++)

    {

        int count = 0;

          

        for (int j = 0; j < n; j++)

            if (arr[j] > arr[i])

                count++;

  

        if (count >= 2)

        System.out.print(arr[i] + " ");

    }

}

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

public static void main(String args[])

{

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

    int n = arr.length;

    findElements(arr, n);

}
}

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

python3

# Python3 программа для поиска
# все элементы в массиве
# которые имеют по крайней мере два
# большие элементы сами по себе.

  

def findElements( arr, n):

  

    # Выберите элементы по одному

        # один и считай больше

    # элементы. Если считать

        # больше 2, распечатать

    # этот элемент.

  

    for i in range(n):

        count = 0

        for j in range(0, n):

            if arr[j] > arr[i]:

                count = count + 1

                  

                  

                  

        if count >= 2 :

            print(arr[i], end=" ")

              

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

arr = [ 2, -6 ,3 , 5, 1]

n = len(arr)

findElements(arr, n)

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

C #

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

using System;

  

class GFG

{

      

static void findElements(int []arr, int n)

{

    // Выбираем элементы один за другим и считаем

    // большие элементы. Если счет больше

    // чем 2, распечатать этот элемент.

    for (int i = 0; i < n; i++)

    {

        int count = 0;

          

        for (int j = 0; j < n; j++)

            if (arr[j] > arr[i])

                count++;

  

        if (count >= 2)

    Console.Write(arr[i] + " ");

    }

}

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

public static void Main(String []args)

{

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

    int n = arr.Length;

    findElements(arr, n);

  
}
}

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

PHP

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

  

function findElements($arr, $n)

{

    // Выбрать элементы один за другим и

    // считать большие элементы. Если

    // количество больше 2,

    // распечатать этот элемент.

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

    {

        $count = 0;

        for ($j = 0; $j < $n; $j++)

            if ($arr[$j] > $arr[$i])

                $count++;

  

        if ($count >= 2)

            echo $arr[$i]." ";

    }

}

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

$arr = array( 2, -6 ,3 , 5, 1);

$n = sizeof($arr);

findElements($arr, $n);

  
?>


Выход :

2  -6  1


Сложность времени:
O (n 2 )

Способ 2 (использовать сортировку)
Сначала мы сортируем массив в порядке возрастания, затем печатаем первые n-2 элемента, где n — размер массива.

C ++

// Сортировка программы на C ++ по
// найти все элементы в массиве
// которые имеют по крайней мере два больше
// сами элементы
#include<bits/stdc++.h>

using namespace std;

  

void findElements(int arr[], int n)

{

    sort(arr, arr + n);

  

    for (int i = 0; i < n - 2; i++)

    cout << arr[i] << " ";

}

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

int main()

{

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

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

    findElements(arr, n);

    return 0;

}

Джава

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

import java.util.*;

import java.io.*;

  

class GFG

{

  

static void findElements(int arr[], int n)

{

    Arrays.sort(arr);

  

    for (int i = 0; i < n - 2; i++)

    System.out.print(arr[i] + " ");

}

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

public static void main(String args[])

{

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

    int n = arr.length;

    findElements(arr, n);

  
}
}

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

python3

# Сортировка на основе программы Python 3
# найти все элементы в массиве
# которые имеют по крайней мере два больше
Сам элемент #.

  

def findElements(arr, n):

  

    arr.sort()

  

    for i in range(0, n-2):

        print(arr[i], end =" ")

  
# Управляемый источник

arr = [2, -6, 3, 5, 1]

n = len(arr)

findElements(arr, n)

  
# Этот код добавлен
# Смита Динеш Семвал

Выход :

-6 1 2

C #

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

using System;

  

class GFG

{

  

static void findElements(int []arr, int n)

{

    Array.Sort(arr);

  

    for (int i = 0; i < n-2; i++)

        Console.Write(arr[i] + " ");

}

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

public static void Main(String []args)

{

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

    int n = arr.Length;

    findElements(arr, n);

  
}
}

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

PHP

<?php
// Сортировка PHP-программы на основе
// найти все элементы в массиве
// которые имеют по крайней мере два больше
// сами элементы

  

function findElements( $arr, $n)

{

    sort($arr);

  

    for ($i = 0; $i < $n - 2; $i++)

    echo $arr[$i] , " ";

}

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

$arr = array( 2, -6 ,3 , 5, 1);

$n = count($arr);

findElements($arr, $n); 

  
// Этот код предоставлен anuj_67.
?>;


Выход :

-6 1 2

Сложность времени: O (n Log n)

Метод 3 (Эффективный)
Во втором методе мы просто вычисляем второй максимальный элемент массива и печатаем весь элемент, который меньше или равен второму максимуму.

C ++

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

using namespace std;

  

void findElements(int arr[], int n)

{

    int first = INT_MIN, 

        second = INT_MIN;

    for (int i = 0; i < n; i++)

    {

        / * Если текущий элемент меньше

        затем сначала обновите оба

        и второй * /

        if (arr[i] > first)

        {

            second = first;

            first = arr[i];

        }

  

        / * Если arr [i] находится между первым

        и второй, затем обновить второй * /

        else if (arr[i] > second)

            second = arr[i];

    }

  

    for (int i = 0; i < n; i++)

        if (arr[i] < second)

            cout << arr[i] << " ";

}

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

int main()

{

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

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

    findElements(arr, n);

    return 0;

}

Джава

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

import java.util.*;

import java.io.*;

  

class GFG

{

      

static void findElements(int arr[], int n)

{

    int first = Integer.MIN_VALUE;

    int second = Integer.MAX_VALUE;

      

    for (int i = 0; i < n; i++)

    {

        // Если текущий элемент меньше

        // затем сначала обновите оба

        // первый и второй

        if (arr[i] > first)

        {

            second = first;

            first = arr[i];

        }

  

        / * Если arr [i] находится между

        первое и второе

        затем обновите второй * /

        else if (arr[i] > second)

            second = arr[i];

    }

  

    for (int i = 0; i < n; i++)

        if (arr[i] < second)

            System.out.print(arr[i] + " ") ;

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

public static void main(String args[])

{

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

    int n = arr.length;

    findElements(arr, n);

}
}

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

python3

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

import sys

  

def findElements(arr, n):

  

    first = -sys.maxsize

    second = -sys.maxsize

  

    for i in range(0, n):

      

        # Если текущий элемент меньше

        # затем сначала обновите оба

        # первое и второе

        if (arr[i] > first):

          

            second = first

            first = arr[i]

          

        # Если arr [i] находится между первым

        # и второе, затем обновить второе

        elif (arr[i] > second):

            second = arr[i]

      

    for i in range(0, n):

        if (arr[i] < second):

            print(arr[i], end =" ")

  

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

arr = [2, -6, 3, 5, 1]

n = len(arr)

findElements(arr, n)

  
# Этот код добавлен
# Смита Динеш Семвал

C #

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

using System;

  

class GFG

{

    static void findElements(int []arr, 

                            int n)

    {

    int first = int.MinValue;

    int second = int.MaxValue;

      

    for (int i = 0; i < n; i++)

    {

        // Если текущий элемент меньше

        // затем сначала обновите оба

        // первый и второй

        if (arr[i] > first)

        {

            second = first;

            first = arr[i];

        }

  

        / * Если arr [i] находится между

        первое и второе

        затем обновите второй * /

        else if (arr[i] > second)

            second = arr[i];

    }

  

    for (int i = 0; i < n; i++)

        if (arr[i] < second)

            Console.Write(arr[i] + " ") ;

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

public static void Main(String []args)

{

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

    int n = arr.Length;

    findElements(arr, n);

}
}

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

PHP

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

  

function findElements($arr, $n)

{

      

    $first = PHP_INT_MIN; 

    $second =  PHP_INT_MIN;

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

    {

          

            / * Если текущий элемент меньше

            затем сначала обновите оба

            и второй * /

            if ($arr[$i] > $first)

            {

                $second = $first;

                $first = $arr[$i];

              

      

            }

  

        / * Если arr [i] находится между первым

           и второй, затем обновить второй * /

        else if ($arr[$i] > $second)

            $second = $arr[$i];

    }

  

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

        if ($arr[$i] < $second)

            echo $arr[$i] , " ";

}

  

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

    $arr = array(2, -6, 3, 5, 1);

    $n = count($arr);

    findElements($arr, $n);

  
// Этот код предоставлен vishal tripathi.
?>


Выход :

2  -6  1

Сложность времени: O (n)

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

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

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

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

0.00 (0%) 0 votes