Somme maximale de la sous-bande en Java: l'algorithme de Kadane
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>
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:
-
Initialiser deux variables:
currentSum
(pour suivre la somme du sous-réseau actuel) etmaxSum
(pour stocker la somme maximale rencontrée jusqu'à présent). DéfinissezcurrentSum
sur 0 etmaxSum
à la plus petite valeur entière possible (par exemple,Integer.MIN_VALUE
). -
itérer dans le tableau: pour chaque élément
arr[i]
, ajoutez sa valeur àcurrentSum
. -
Mise à jour
maxSum
: Après chaque ajout, mise à jourmaxSum
en prenant le maximum demaxSum
etcurrentSum
. -
réinitialiser
currentSum
: sicurrentSum
devient négatif, réinitialisez-le à 0. Ceci est crucial car un négatifcurrentSum
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(); } }
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>
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!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

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

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

Sujets chauds











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.

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.

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

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.

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.

JavaplaysaSignificantroleiniotDuetOtsPlatformIndependence.1)

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 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.
