Maison Java javaDidacticiel Somme maximale de la sous-bande en Java: l'algorithme de Kadane

Somme maximale de la sous-bande en Java: l'algorithme de Kadane

Feb 07, 2025 am 11:54 AM
java

apprenons à trouver efficacement la somme maximale de sous-réseau en utilisant l'algorithme de Kadane en Java.

Instruction Problème:

Compte tenu d'un tableau de taille n, écrivez un programme Java pour déterminer la somme maximale d'un sous-réseau contigu en utilisant l'algorithme de Kadane.

Exemple:

<code>Input:
n = 5
arr[] = 1, 2, 3, -2, 5

Output:
Maximum Subarray sum is: 9</code>
Copier après la connexion

Comprendre l'algorithme de Kadane:

L'algorithme de Kadane fournit une solution de complexité temporelle O (n) efficace pour trouver la somme maximale de sous-réseau.

étapes:

  1. Initialiser deux variables: currentSum (pour suivre la somme du sous-réseau actuel) et maxSum (pour stocker la somme maximale rencontrée jusqu'à présent). Définissez currentSum sur 0 et maxSum à la plus petite valeur entière possible (par exemple, Integer.MIN_VALUE).

  2. itérer dans le tableau: pour chaque élément arr[i], ajoutez sa valeur à currentSum.

  3. Mise à jour maxSum: Après chaque ajout, mise à jour maxSum en prenant le maximum de maxSum et currentSum.

  4. réinitialiser currentSum: si currentSum devient négatif, réinitialisez-le à 0. Ceci est crucial car un négatif currentSum indique que l'inclusion des éléments précédents ne contribue pas à une somme plus grande; Il vaut mieux démarrer un nouveau sous-réseau à partir de l'élément actuel.

Code java:

import java.util.Scanner;

public class KadaneAlgo {
    public static int findMaxSubArraySum(int[] arr, int n) {
        int currentSum = 0;
        int maxSum = Integer.MIN_VALUE; // Initialize to the smallest possible integer

        for (int i = 0; i < n; i++) {
            currentSum += arr[i];
            maxSum = Math.max(maxSum, currentSum); // Update maxSum if necessary
            if (currentSum < 0) {
                currentSum = 0; // Reset currentSum if it becomes negative
            }
        }
        return maxSum;
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Enter the size of the array: ");
        int n = scanner.nextInt();
        int[] arr = new int[n];
        System.out.print("Enter the elements of the array: ");
        for (int i = 0; i < n; i++) {
            arr[i] = scanner.nextInt();
        }
        int maxSum = findMaxSubArraySum(arr, n);
        System.out.println("Maximum Subarray sum is: " + maxSum);
        scanner.close();
    }
}
Copier après la connexion

sortie (exemple):

<code>Enter the size of the array: 5
Enter the elements of the array: 1 2 3 -2 5
Maximum Subarray sum is: 9</code>
Copier après la connexion

Maximum Subarray Sum in Java: Kadane’s Algorithm

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

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

<🎜>: Grow A Garden - Guide de mutation complet
4 Il y a quelques semaines By DDD
<🎜>: Bubble Gum Simulator Infinity - Comment obtenir et utiliser les clés royales
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Système de fusion, expliqué
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Comment déverrouiller le grappin
4 Il y a quelques semaines 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)

Sujets chauds

Tutoriel Java
1677
14
Tutoriel PHP
1280
29
Tutoriel C#
1257
24
Compositeur: aider le développement de PHP à travers l'IA Compositeur: aider le développement de PHP à travers l'IA Apr 29, 2025 am 12:27 AM

L'IA peut aider à optimiser l'utilisation du compositeur. Les méthodes spécifiques incluent: 1. Optimisation de la gestion des dépendances: AI analyse les dépendances, recommande la meilleure combinaison de versions et réduit les conflits. 2. Génération de code automatisée: AI génère des fichiers composer.json conformes aux meilleures pratiques. 3. Améliorer la qualité du code: l'IA détecte des problèmes potentiels, fournit des suggestions d'optimisation et améliore la qualité du code. Ces méthodes sont implémentées par l'apprentissage automatique et les technologies de traitement du langage naturel pour aider les développeurs à améliorer l'efficacité et la qualité du code.

Comment utiliser les fonctions MySQL pour le traitement et le calcul des données Comment utiliser les fonctions MySQL pour le traitement et le calcul des données Apr 29, 2025 pm 04:21 PM

Les fonctions MySQL peuvent être utilisées pour le traitement et le calcul des données. 1. L'utilisation de base comprend le traitement des chaînes, le calcul de la date et les opérations mathématiques. 2. L'utilisation avancée consiste à combiner plusieurs fonctions pour implémenter des opérations complexes. 3. L'optimisation des performances nécessite d'éviter l'utilisation de fonctions dans la clause où et d'utiliser des tables groupby et temporaires.

Comment configurer le jeu de caractères et les règles de collation de MySQL Comment configurer le jeu de caractères et les règles de collation de MySQL Apr 29, 2025 pm 04:06 PM

Les méthodes de configuration des ensembles de caractères et des collations dans MySQL incluent: 1. Définition des jeux de caractères et des collations au niveau du serveur: setNames'utf8 '; SetCharAttersetUtf8; SetCollation_Connection = 'utf8_general_ci'; 2. Créez une base de données qui utilise des jeux de caractères et des collations spécifiques: CreatedAtAbasEExample_DBCharacteSetUtf8CollateUtf8_General_ci; 3. Spécifiez les ensembles de caractères et les collations lors de la création d'une table: CreateTableExample_Table (IDInt

Comment renommer une base de données dans MySQL Comment renommer une base de données dans MySQL Apr 29, 2025 pm 04:00 PM

Le renommer une base de données dans MySQL nécessite des méthodes indirectes. Les étapes sont les suivantes: 1. Créez une nouvelle base de données; 2. Utilisez MySQLDump pour exporter l'ancienne base de données; 3. Importez les données dans la nouvelle base de données; 4. Supprimer l'ancienne base de données.

Comment implémenter le modèle Singleton en C? Comment implémenter le modèle Singleton en C? Apr 28, 2025 pm 10:03 PM

La mise en œuvre du modèle Singleton en C peut garantir qu'il n'y a qu'une seule instance de la classe via des variables de membres statiques et des fonctions de membres statiques. Les étapes spécifiques incluent: 1. Utilisez un constructeur privé et supprimez le constructeur de copie et l'opérateur d'affectation pour éviter une instanciation directe externe. 2. Fournissez un point d'accès global via la méthode statique GetInstance pour vous assurer qu'une seule instance est créée. 3. Pour la sécurité des filetages, le mode de verrouillage à double vérification peut être utilisé. 4. Utilisez des pointeurs intelligents tels que STD :: Shared_PTR pour éviter les fuites de mémoire. 5. Pour les exigences de haute performance, des variables locales statiques peuvent être implémentées. Il convient de noter que le modèle Singleton peut conduire à l'abus de l'État mondial, et il est recommandé de l'utiliser avec prudence et de considérer des alternatives.

Quels sont les avantages de l'utilisation de Java pour les applications Web qui doivent s'exécuter sur différents serveurs? Quels sont les avantages de l'utilisation de Java pour les applications Web qui doivent s'exécuter sur différents serveurs? May 03, 2025 am 12:13 AM

Java convient pour développer des applications Web inter-serveur. 1) La philosophie de "Write Once, Run Everwhere" de Java fait fonctionner son code sur n'importe quelle plate-forme qui prend en charge JVM. 2) Java a un écosystème riche, y compris des outils tels que le printemps et l'hibernate, pour simplifier le processus de développement. 3) Java fonctionne parfaitement dans la performance et la sécurité, offrant une gestion efficace de la mémoire et de solides garanties de sécurité.

Comment définir l'effet de rotation des éléments HTML Comment définir l'effet de rotation des éléments HTML Apr 30, 2025 pm 02:42 PM

Comment définir l'effet de rotation d'un élément dans HTML? Il peut être réalisé en utilisant CSS et JavaScript. 1. La propriété de transformation de CSS est utilisée pour la rotation statique, telle que Rotate (45deg). 2. JavaScript peut contrôler dynamiquement la rotation, qui est implémentée en modifiant l'attribut de transformation.

See all articles