Table des matières
Comment le résoudre
Exemple
Sortie
Explication du code ci-dessus
Méthode efficace
Description du code ci-dessus
Conclusion
Maison développement back-end C++ Écrivez un code en C++ pour trouver le nombre de sous-tableaux avec les mêmes valeurs minimales et maximales

Écrivez un code en C++ pour trouver le nombre de sous-tableaux avec les mêmes valeurs minimales et maximales

Aug 25, 2023 pm 11:33 PM
数量 最大值 最小值 programmation c sous-tableau

Écrivez un code en C++ pour trouver le nombre de sous-tableaux avec les mêmes valeurs minimales et maximales

Dans cet article, nous utiliserons C++ pour résoudre le problème de trouver le nombre de sous-tableaux dont les valeurs maximales et minimales sont les mêmes. Voici un exemple de ce problème −

Input : array = { 2, 3, 6, 6, 2, 4, 4, 4 }
Output : 12
Explanation : {2}, {3}, {6}, {6}, {2}, {4}, {4}, {4}, {6,6}, {4,4}, {4,4} and { 4,4,4 } are the subarrays which can be formed with maximum and minimum element same.

Input : array = { 3,3,1,5,1,2,2 }
Output : 9
Explanation : {3}, {3}, {1}, {5}, {1}, {2}, {2}, {3,3} and {2,2} are the subarrays which can be formed with minimum and maximum are the same.
Copier après la connexion

Comment le résoudre

Par exemple, on peut dire qu'un nombre minimum de sous-tableaux peut être formé en utilisant les mêmes éléments minimum et maximum égaux à la taille du tableau. Le nombre de sous-tableaux peut être plus grand si les nombres consécutifs sont identiques.

Nous pouvons donc utiliser la méthode consistant à parcourir chaque élément et à vérifier si ses nombres consécutifs sont les mêmes. Si les nombres consécutifs sont les mêmes, augmentez le nombre. Si des nombres différents sont trouvés, interrompez la boucle interne.

Chaque fois que la boucle interne se termine ou est interrompue, la variable résultat sera incrémentée et enfin la variable résultat sera affichée.

p>

Exemple

#include <bits/stdc++.h>
using namespace std;
int main(){
    int a[ ] = { 2, 4, 5, 3, 3, 3 };
    int n = sizeof(a) / sizeof(a[0]);
        int result = n, count =0;
    for (int i = 0; i < n; i++) {
        for (int j = i+1; j < n; j++) {
            if(a[i]==a[j])
                count++;
            else
                break;
        }
        result+=count;
        count =0;
    }
    cout << "Number of subarrays having minimum and maximum elements same:" << result;
    return 0;
}
Copier après la connexion

Sortie

Number of subarrays having minimum and maximum elements same: 9
Time complexity = O(n<sup>2</sup>).
Copier après la connexion

Explication du code ci-dessus

Dans ce code, nous utilisons la variable n pour stocker la taille du tableau, résultat = n, car au moins n sous-tableaux peuvent être formés et le même nombre calculé.

La boucle externe est utilisée pour traiter chaque élément du tableau. La boucle interne est utilisée pour trouver combien de nombres identiques consécutifs il y a après l'élément d'index et à la fin de la boucle interne, elle incrémente la variable de comptage avec la variable de résultat. Enfin, la sortie stockée dans la variable de résultat est affichée.

Méthode efficace

Dans cette méthode, nous parcourons chaque élément et pour chaque élément, nous recherchons combien il y a de mêmes nombres consécutifs. Pour chaque nombre identique trouvé, nous incrémentons la variable de comptage et lorsqu'un nombre différent est trouvé, trouvons combien de sous-tableaux peuvent être formés en utilisant la formule "n = n*(n+1)/2" Incrémentons la variable de résultat.

Exemple

#include <bits/stdc++.h>
using namespace std;
int main(){
    int a[] = { 2, 4, 5, 3, 3, 3 };
    int n = sizeof(a) / sizeof(a[0]);
        int result = 0;
    int count =1,temp=a[0];
    for (int i = 1; i < n; i++) {
        if (temp==a[i]){
            count++;
        }
        else{
            temp=a[i];
            result = result + (count*(count+1)/2);
            count=1;
        }
    }
    result = result + (count*(count+1)/2);
    cout <<  "Number of subarrays having minimum and maximum elements same:" << result;
    return 0;
}
Copier après la connexion

Sortie

Number of subarrays having minimum and maximum elements same: 9
Time complexity : O(n)
Copier après la connexion

Description du code ci-dessus

Dans ce code, nous stockons le 0ème index du tableau dans la variable temporaire et démarrons la boucle à partir de l'index 1. Nous vérifions si la variable temp est égale à l'élément à l'index actuel et incrémentons le compte de 1 pour le même nombre trouvé. Si la variable temp n'est pas égale à l'élément index, nous trouvons la combinaison de sous-tableaux qui peut être dérivée en comptant le même nombre et stockons le résultat dans la variable result. Nous modifions la valeur temporaire par l'index actuel, réinitialisant le compte à 1. Enfin, nous affichons la réponse stockée dans la variable résultat.

Conclusion

Dans cet article, nous avons résolu le problème de trouver le nombre de sous-tableaux dont les éléments minimum et maximum sont les mêmes. Nous avons également appris un programme C++ pour résoudre ce problème et une manière complète de résoudre ce problème (normale et efficace). Nous pouvons écrire le même programme dans d'autres langages tels que C, Java, Python et d'autres langages. J'espère que cet article vous sera utile.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Utilisez la fonction math.Max ​​​​pour obtenir la valeur maximale dans un ensemble de nombres Utilisez la fonction math.Max ​​​​pour obtenir la valeur maximale dans un ensemble de nombres Jul 24, 2023 pm 01:24 PM

Utilisez la fonction math.Max ​​​​​​pour obtenir la valeur maximale dans un ensemble de nombres. En mathématiques et en programmation, il est souvent nécessaire de trouver la valeur maximale dans un ensemble de nombres. En langage Go, nous pouvons utiliser la fonction Max du package mathématique pour réaliser cette fonction. Cet article explique comment utiliser la fonction math.Max ​​​​​​pour obtenir la valeur maximale dans un ensemble de nombres et fournit des exemples de code correspondants. Tout d’abord, nous devons importer le package mathématique. Dans le langage Go, vous pouvez utiliser le mot-clé import pour importer un package, comme indiqué ci-dessous : import"mat

Mise à jour OpenOOD v1.5 : bibliothèque de codes de détection hors distribution complète et précise et plateforme de test, prenant en charge les classements en ligne et les tests en un clic Mise à jour OpenOOD v1.5 : bibliothèque de codes de détection hors distribution complète et précise et plateforme de test, prenant en charge les classements en ligne et les tests en un clic Jul 03, 2023 pm 04:41 PM

La détection hors distribution (OOD) est cruciale pour le fonctionnement fiable des systèmes intelligents en monde ouvert, mais les méthodes actuelles de détection orientée objet souffrent d'« incohérences d'évaluation » (incohérences d'évaluation). Travaux antérieurs OpenOODv1 unifie l'évaluation de la détection OOD, mais présente toujours des limites en termes d'évolutivité et de convivialité. Récemment, l'équipe de développement a de nouveau proposé OpenOODv1.5. Par rapport à la version précédente, la nouvelle évaluation de la méthode de détection OOD a été considérablement améliorée pour garantir la précision, la standardisation et la convivialité. Document d'image : https://arxiv.org/abs/2306.09301OpenOODCodebase:htt

Augmentez vos connaissances! Apprentissage automatique avec des règles logiques Augmentez vos connaissances! Apprentissage automatique avec des règles logiques Apr 01, 2023 pm 10:07 PM

Sur la courbe précision-rappel, les mêmes points sont tracés avec des axes différents. Attention : Le premier point rouge à gauche (0% de rappel, 100% de précision) correspond à 0 règle. Le deuxième point à gauche est la première règle, et ainsi de suite. Skope-rules utilise un modèle d'arborescence pour générer des règles candidates. Créez d’abord des arbres de décision et considérez les chemins allant du nœud racine aux nœuds internes ou aux nœuds feuilles comme candidats aux règles. Ces règles candidates sont ensuite filtrées selon certains critères prédéfinis tels que la précision et le rappel. Seuls ceux dont la précision et le rappel sont supérieurs à leurs seuils sont retenus. Enfin, un filtrage de similarité est appliqué pour sélectionner des règles présentant une diversité suffisante. En général, les règles Skope sont appliquées pour connaître la cause profonde de chaque problème.

Utilisez C++ pour écrire du code afin de trouver le Nième nombre non carré Utilisez C++ pour écrire du code afin de trouver le Nième nombre non carré Aug 30, 2023 pm 10:41 PM

Nous connaissons tous des nombres qui ne sont le carré d’aucun nombre, comme 2, 3, 5, 7, 8, etc. Il existe N nombres non carrés et il est impossible de connaître tous les nombres. Ainsi, dans cet article, nous expliquerons tout sur les nombres sans carrés ou non carrés et les moyens de trouver le Nième nombre non carré en C++. Nième nombre non carré Si un nombre est le carré d'un entier, alors ce nombre est appelé un carré parfait. Quelques exemples de nombres carrés parfaits sont -1iscarréde14iscarréde29iscarréde316iscarréde425iscarréde5 Si un nombre n'est le carré d'aucun entier, alors le nombre est appelé non carré. Par exemple, les 15 premiers nombres non carrés sont -2,3,5,6,

En programmation C, trouver l'aire d'un cercle En programmation C, trouver l'aire d'un cercle Aug 25, 2023 pm 10:57 PM

Un cercle est une figure fermée. Tous les points d'un cercle sont équidistants d'un point à l'intérieur du cercle. Le point central est appelé le centre du cercle. La distance d’un point au centre d’un cercle s’appelle le rayon. L'aire est une représentation quantitative de l'étendue des dimensions d'une figure fermée. L'aire d'un cercle est l'aire délimitée par les dimensions du cercle. La formule pour calculer l'aire d'un cercle, Aire=π*r*r Pour calculer l'aire, nous donnons le rayon du cercle en entrée, nous utiliserons la formule pour calculer l'aire, algorithme ÉTAPE 1 : Prendre le rayon comme entrée de l'utilisateur utilisant st dinput.ÉTAPE 2 : Calculez l'aire du cercle en utilisant, aire = (

Comment trouver le nombre de paramètres fournis par le runtime en Java ? Comment trouver le nombre de paramètres fournis par le runtime en Java ? Sep 23, 2023 pm 01:13 PM

En Java, une façon de transmettre des paramètres au moment de l'exécution consiste à utiliser la ligne de commande ou le terminal. Lors de la récupération de ces valeurs pour les paramètres de ligne de commande, nous devrons peut-être trouver le nombre de paramètres fournis par l'utilisateur au moment de l'exécution, ce qui peut être obtenu à l'aide de l'attribut length. Cet article vise à expliquer le processus de transmission et d'obtention d'un certain nombre de paramètres fournis par l'utilisateur à l'aide d'un exemple de programme. Obtenir le nombre d'arguments fournis par l'utilisateur au moment de l'exécution Avant de trouver le nombre d'arguments de ligne de commande, notre première étape consiste à créer un programme qui permet à l'utilisateur de transmettre des arguments au moment de l'exécution. Paramètre String[] Lors de l'écriture de programmes Java, nous rencontrons souvent la méthode main(). Lorsque la JVM appelle cette méthode, l'application Java commence à s'exécuter. Il est utilisé avec un argument appelé String[]args

Algorithme d'inversion pour la rotation à droite du tableau écrit en C++ Algorithme d'inversion pour la rotation à droite du tableau écrit en C++ Sep 08, 2023 pm 08:17 PM

Dans cet article, nous découvrirons l'algorithme d'inversion pour faire pivoter le tableau donné vers la droite de k éléments, par exemple −Input:arr[]={4,6,2,6,43,7,3,7}, k= 4Sortie :{43,7,3,7,4,6,2,6}Explication : La rotation de chaque élément du tableau par 4 éléments vers la droite donne{43,7,3,7,4,6,2,6}.Entrée :arr[]= {8 ,5,8,2,1,4,9,3},k=3Sortie :{4,9,3,8,5,8,2,1} Trouver la solution

Commande Linux : Comment vérifier le nombre de processus telnet Commande Linux : Comment vérifier le nombre de processus telnet Mar 01, 2024 am 11:39 AM

Les commandes Linux sont l'un des outils indispensables dans le travail quotidien des administrateurs système. Elles peuvent nous aider à accomplir diverses tâches de gestion du système. Lors des travaux d'exploitation et de maintenance, il est parfois nécessaire de vérifier le numéro d'un certain processus dans le système afin de détecter les problèmes et de procéder à des ajustements à temps. Cet article explique comment utiliser les commandes Linux pour vérifier le nombre de processus telnet, apprenons ensemble. Dans les systèmes Linux, nous pouvons utiliser la commande ps combinée avec la commande grep pour afficher le nombre de processus telnet. Tout d'abord, nous devons ouvrir un terminal,

See all articles