Рубрики

Программа для расчета битоничности массива

Учитывая массив целые числа. Задача — найти битоничность заданного массива.

Битонность массива arr [] может быть определена как:

B[i] = 0,         if i = 0.
     = B[i-1] + 1, if arr[i] > arr[i-1]
     = B[i-1] - 1, if arr[i] < arr[i-1]
     = B[i-1],     if arr[i] = arr[i-1]    

Bitonicity will be last element of array B[].

Примеры :

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

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

Учитывая, что битоничность массива arr [] может быть определена как:

B[i] = 0,         if i = 0.
     = B[i-1] + 1, if arr[i] > arr[i-1]
     = B[i-1] - 1, if arr[i] < arr[i-1]
     = B[i-1],     if arr[i] = arr[i-1]

Bitonicity will be last element of array B[].

Из приведенного выше выражения можно сделать вывод, что:

  • Битонность массива изначально равна 0.
  • Увеличивается на 1 при переходе к следующему элементу, если следующий элемент больше, чем предыдущий элемент.
  • При переходе к следующему элементу оно уменьшается на 1, если следующий элемент больше предыдущего.

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

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

C ++

// C ++ программа для поиска битоничности
// массива
#include <iostream>

using namespace std;

  
// Функция поиска битоничности
// массива

int findBitonicity(int arr[], int n)

{

    int bt = 0;

  

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

        if (arr[i] > arr[i - 1])

            bt++;

        else if (arr[i] < arr[i - 1])

            bt--;

    }

  

    return bt;

}

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

int main()

{

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

  

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

  

    cout << "Bitonicity = " << findBitonicity(arr, n);

  

    return 0;

}

Джава

// Java-программа для поиска битоничности
// массива

import java.util.*;

import java.lang.*;

  

class GFG

{

      
// Функция поиска битоничности
// массива

static int findBitonicity(int[] arr, 

                          int n)

{

    int bt = 0;

  

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

    {

        if (arr[i] > arr[i - 1])

            bt++;

        else if (arr[i] < arr[i - 1])

            bt--;

    }

  

    return bt;

}

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

public static void main(String args[])

{

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

  

    int n = arr.length;

  

    System.out.print("Bitonicity = "

              findBitonicity(arr, n));

}
}

  
// Этот код добавлен
// Аканкша Рай

python3

# Python3 программа для поиска битоничности
№ массива

  
# Функция поиска битоничности
№ массива

def findBitonicity(arr, n):

    bt = 0

  

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

        if (arr[i] > arr[i - 1]):

            bt += 1

        elif (arr[i] < arr[i - 1]):

            bt -= 1

  

    return bt

  
Код водителя

if __name__ == '__main__':

    arr = [1, 2, 3, 4, 5, 6, 4, 3

  

    n = len(arr)

  

    print("Bitonicity =",

           findBitonicity(arr, n))

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

C #

// C # программа для поиска битоничности
// массива

using System;

  

class GFG

{
// Функция поиска битоничности
// массива

static int findBitonicity(int[] arr, 

                          int n)

{

    int bt = 0;

  

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

    {

        if (arr[i] > arr[i - 1])

            bt++;

        else if (arr[i] < arr[i - 1])

            bt--;

    }

  

    return bt;

}

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

public static void Main()

{

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

  

    int n = arr.Length;

  

    Console.Write("Bitonicity = "

                  findBitonicity(arr, n));

}
}

  
// Этот код добавлен
// Аканкша Рай

PHP

<?php
// PHP программа для поиска битоничности
// массива

  
// Функция поиска битоничности
// массива

function findBitonicity(&$arr, $n)

{

    $bt = 0;

  

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

    {

        if ($arr[$i] > $arr[$i - 1])

            $bt++;

        else if ($arr[$i] < $arr[$i - 1])

            $bt--;

    }

  

    return $bt;

}

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

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

  

$n = sizeof($arr);

  

echo ("Bitonicity = ");

echo findBitonicity($arr, $n);

  
// Этот код добавлен
// от Shivi_Aggarwal
?>

Выход:

Bitonicity = 3

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

Программа для расчета битоничности массива

0.00 (0%) 0 votes