Heim Datenbank MySQL-Tutorial 最大子序列和问题

最大子序列和问题

Jun 07, 2016 pm 04:13 PM
序列 整数 最大 输入 问题

问题描述: 输入一组整数,求出这组数字子序列和中最大值。也就是只要求出最大子序列的和,不必求出最大的那个序列。例如: 序列:-2 11 -4 13 -5 -2,则最大子序列和为20。 序列:-6 2 4 -7 5 3 2 -1 6 -9 10 -2,则最大子序列和为16。 下面依次给出几个不

问题描述:

输入一组整数,求出这组数字子序列和中最大值。也就是只要求出最大子序列的和,不必求出最大的那个序列。例如:

序列:-2 11 -4 13 -5 -2,则最大子序列和为20。

序列:-6 2 4 -7 5 3 2 -1 6 -9 10 -2,则最大子序列和为16。

下面依次给出几个不同实现算法

int MaxSubseqSum1( int A[], int N )//算法1  T( N ) = O( N3 )
{
    int ThisSum, MaxSum = 0;
    int i, j, k;
    for( i = 0; i < N; i++ )   /* i是子列左端位置*/
    {
        for( j = i; j < N; j++ )   /* j是子列右端位置*/
        {
            ThisSum = 0; /* ThisSum是从A[i]到A[j]的子列和*/
            for( k = i; k <= j; k++ )
                ThisSum += A[k];
            if( ThisSum > MaxSum ) /* 如果刚得到的这个子列和更大*/
                MaxSum = ThisSum; /* 则更新结果*/
        } /* j循环结束*/
    } /* i循环结束*/
    return MaxSum;
}

int MaxSubseqSum2( int A[], int N )  //算法2T( N ) = O( N2 )
{
    int ThisSum, MaxSum = 0;
    i【本文来自鸿网互联 (http://www.68idc.cn)】nt i, j;
    for( i = 0; i < N; i++ )   /* i是子列左端位置*/
    {
        ThisSum = 0; /* ThisSum是从A[i]到A[j]的子列和*/
        for( j = i; j < N; j++ )   /* j是子列右端位置*/
        {
            ThisSum += A[j];
            /*对于相同的i,不同的j,只要在j-1次循环的基础上累加1项即可*/
            if( ThisSum > MaxSum ) /* 如果刚得到的这个子列和更大*/
                MaxSum = ThisSum; /* 则更新结果*/
        } /* j循环结束*/
    } /* i循环结束*/
    return MaxSum;
}
 
 int MaxSubseqSum4( int A[], int N ) //算法4T( N ) = O( N2 )
{
    int ThisSum, MaxSum;
    int i;
    ThisSum = MaxSum = 0;
    for( i = 0; i < N; i++ )
    {
        ThisSum += A[i]; /* 向右累加*/
        if( ThisSum > MaxSum )
            MaxSum = ThisSum; /* 发现更大和则更新当前结果*/
        else if( ThisSum < 0 ) /* 如果当前子列和为负*/
            ThisSum = 0; /* 则不可能使后面的部分和增大,抛弃之*/
    }
    return MaxSum;
}//&ldquo;在线&rdquo;的意思是指每输入一个数据就进行即时处理,在任 何一个地方中止输入,算法都能正确给出当前的解。
Nach dem Login kopieren

算法3---分治法

\

\

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Deaktivieren des Win11 Input Experience Guide Deaktivieren des Win11 Input Experience Guide Dec 27, 2023 am 11:07 AM

In letzter Zeit sind viele Win11-Benutzer auf das Problem gestoßen, dass das Eingabedialogfeld immer flackert und nicht ausgeschaltet werden kann. Dies wird tatsächlich durch die Standardsystemdienste und -komponenten von Win11 verursacht. Wir müssen zuerst die relevanten Dienste deaktivieren Input Experience Service gelöst, versuchen wir es gemeinsam. So deaktivieren Sie das Eingabeerlebnis in Win11: Klicken Sie im ersten Schritt mit der rechten Maustaste auf das Startmenü und öffnen Sie den „Task-Manager“. Suchen Sie im zweiten Schritt die drei Prozesse „CTF Loader“, „MicrosoftIME“ und „Service Host: Textinput Management Service“. Klicken Sie in der Reihenfolge mit der rechten Maustaste auf „Aufgabe beenden“. Im dritten Schritt öffnen Sie das Startmenü, suchen und öffnen „Dienste“ oben. Suchen Sie im vierten Schritt darin nach „Textinp“.

Bei Windows-Eingaben kommt es zu Hängenbleiben oder hoher Speicherauslastung [Fix] Bei Windows-Eingaben kommt es zu Hängenbleiben oder hoher Speicherauslastung [Fix] Feb 19, 2024 pm 10:48 PM

Die Windows-Eingabeerfahrung ist ein wichtiger Systemdienst, der für die Verarbeitung von Benutzereingaben von verschiedenen Geräten mit menschlicher Schnittstelle verantwortlich ist. Es startet automatisch beim Systemstart und läuft im Hintergrund. Allerdings kann es manchmal vorkommen, dass dieser Dienst automatisch hängt oder zu viel Speicher belegt, was zu einer verringerten Systemleistung führt. Daher ist es wichtig, diesen Prozess rechtzeitig zu überwachen und zu verwalten, um die Systemeffizienz und -stabilität sicherzustellen. In diesem Artikel erfahren Sie, wie Sie Probleme beheben können, bei denen die Windows-Eingabe einfriert oder eine hohe Speicherauslastung verursacht. Der Windows Input Experience Service verfügt über keine Benutzeroberfläche, ist jedoch eng mit der Handhabung grundlegender Systemaufgaben und Funktionen im Zusammenhang mit Eingabegeräten verbunden. Seine Aufgabe besteht darin, dem Windows-System dabei zu helfen, jede vom Benutzer eingegebene Eingabe zu verstehen.

Was sind die regulären Ausdrücke für ganze Zahlen? Was sind die regulären Ausdrücke für ganze Zahlen? Nov 14, 2023 pm 04:11 PM

Die regulären Ausdrücke für Ganzzahlen sind: 1. Übereinstimmung mit positiven Ganzzahlen: ^[1-9]\d*$; 2. Übereinstimmung mit negativen Ganzzahlen: ^-[1-9]\d*$; :^-?\d+$; 4. Ganzzahlen ungleich Null: ^(0|[1-9]\d*)$ 5. Ganzzahlen (einschließlich Null) abgleichen: ^-?\d+$.

Probleme bei der Bewertung des Clustering-Effekts in Clustering-Algorithmen Probleme bei der Bewertung des Clustering-Effekts in Clustering-Algorithmen Oct 10, 2023 pm 01:12 PM

Das Problem der Clustering-Effektbewertung im Clustering-Algorithmus erfordert spezifische Codebeispiele. Clustering ist eine unbeaufsichtigte Lernmethode, die ähnliche Stichproben durch Clustering von Daten in eine Kategorie gruppiert. Bei Clustering-Algorithmen ist die Bewertung des Clustering-Effekts ein wichtiges Thema. In diesem Artikel werden mehrere häufig verwendete Indikatoren zur Bewertung des Clustering-Effekts vorgestellt und entsprechende Codebeispiele gegeben. 1. Clustering-Effekt-Bewertungsindex Silhouette-Koeffizient Der Silhouette-Koeffizient bewertet den Clustering-Effekt, indem er die Nähe der Stichprobe und den Grad der Trennung von anderen Clustern berechnet.

Erfahren Sie, wie Sie häufige iPhone-Probleme diagnostizieren Erfahren Sie, wie Sie häufige iPhone-Probleme diagnostizieren Dec 03, 2023 am 08:15 AM

Das iPhone ist für seine leistungsstarke Leistung und seine vielseitigen Funktionen bekannt und ist nicht immun gegen gelegentliche Probleme oder technische Schwierigkeiten, ein häufiges Merkmal komplexer elektronischer Geräte. iPhone-Probleme können frustrierend sein, aber normalerweise ist kein Alarm erforderlich. In diesem umfassenden Leitfaden möchten wir einige der am häufigsten auftretenden Herausforderungen im Zusammenhang mit der iPhone-Nutzung entmystifizieren. Unser Schritt-für-Schritt-Ansatz soll Ihnen bei der Lösung dieser häufigen Probleme helfen und praktische Lösungen und Tipps zur Fehlerbehebung bieten, damit Ihre Geräte wieder einwandfrei funktionieren. Unabhängig davon, ob Sie mit einer Störung oder einem komplexeren Problem konfrontiert sind, kann Ihnen dieser Artikel dabei helfen, diese effektiv zu beheben. Allgemeine Tipps zur Fehlerbehebung Bevor wir uns mit den spezifischen Schritten zur Fehlerbehebung befassen, finden Sie hier einige hilfreiche Tipps

So lösen Sie das Problem, dass jQuery den Formularelementwert nicht abrufen kann So lösen Sie das Problem, dass jQuery den Formularelementwert nicht abrufen kann Feb 19, 2024 pm 02:01 PM

Um das Problem zu lösen, dass jQuery.val() nicht verwendet werden kann, sind spezifische Codebeispiele erforderlich. Für Front-End-Entwickler ist die Verwendung von jQuery eine der häufigsten Operationen. Unter diesen ist die Verwendung der .val()-Methode zum Abrufen oder Festlegen des Werts eines Formularelements eine sehr häufige Operation. In bestimmten Fällen kann jedoch das Problem auftreten, dass die Methode .val() nicht verwendet werden kann. In diesem Artikel werden einige gängige Situationen und Lösungen vorgestellt und spezifische Codebeispiele bereitgestellt. Problembeschreibung: Wenn Sie jQuery zum Entwickeln von Front-End-Seiten verwenden, treten manchmal Probleme auf

SharePoint SSL-Zertifikat installieren? SharePoint SSL-Zertifikat installieren? Feb 19, 2024 am 11:27 AM

Die Installation eines SSL-Zertifikats auf SharePoint ist ein wichtiger Schritt zur Sicherung Ihrer Website und zur Bereitstellung einer verschlüsselten Verbindung. Indem Sie die richtigen Installationsschritte befolgen, können Sie die Sicherheit Ihrer Website-Daten gewährleisten, Ihr Ranking in Suchmaschinen verbessern und Ihren Besuchern ein besseres Benutzererlebnis bieten. Holen Sie sich ein SSL-Zertifikat. Wenden Sie sich an eine vertrauenswürdige Zertifizierungsstelle (CA), um ein SSL-Zertifikat zu erwerben. Geben Sie die erforderlichen Informationen zur Authentifizierung und zur Überprüfung des Domänenbesitzes an. Nach Abschluss des Verifizierungsprozesses erhalten Sie die SSL-Zertifikatsdatei. Vorbereiten der Zertifikatsdatei Öffnen Sie Ihre SSL-Zertifikatsdatei mit einem Texteditor. Kopieren Sie den Inhalt des Zertifikats in eine neue Textdatei. Speichern Sie die Datei unter dem Namen yourdomain.cer und stellen Sie sicher, dass Sie „yourdomain&#8221“ ändern

Problem beim Erwerb von Etiketten beim schwach überwachten Lernen Problem beim Erwerb von Etiketten beim schwach überwachten Lernen Oct 08, 2023 am 09:18 AM

Das Problem der Etikettenerfassung beim schwach überwachten Lernen erfordert spezifische Codebeispiele. Einführung: Schwach überwachtes Lernen ist eine Methode des maschinellen Lernens, die schwache Etiketten für das Training verwendet. Im Gegensatz zum herkömmlichen überwachten Lernen müssen beim schwach überwachten Lernen nur weniger Beschriftungen zum Trainieren des Modells verwendet werden, und nicht jede Probe muss über eine genaue Beschriftung verfügen. Beim schwach überwachten Lernen ist jedoch die Frage, wie aus schwachen Labels nützliche Informationen genau gewonnen werden können, ein zentrales Thema. In diesem Artikel wird das Problem der Etikettenerfassung beim schwach überwachten Lernen vorgestellt und spezifische Codebeispiele gegeben. Einführung in das Label-Akquisitionsproblem beim schwach überwachten Lernen:

See all articles