Lintcode-Fragedatensatz 4

PHP中文网
Freigeben: 2017-06-20 09:35:14
Original
1408 Leute haben es durchsucht

Russische Puppenumschläge

Russisches Puppennestproblem, das ist ein typisches DP-Problem ... Die erzwungene Durchquerung führt zu einer Zeitüberschreitung, aber ich habe lange nicht herausgefunden, wie ich das Problem beheben kann, und habe das Problem zugeschrieben um das längste Inkrementproblem zu finden ... Ich bin jedoch dumm und kann immer noch nicht herausfinden, warum dies möglich ist ... Obwohl das Ergebnis korrekt ist ...

Sortieren Sie zuerst die Daten und verwenden Sie zum Sortieren die integrierte Sortierfunktion von Python. Wenn x jedoch gleich ist, muss y von groß nach klein sortiert werden, sodass ein cmp übergeben werden muss. python3.x unterstützt cmp nicht. Daher habe ich eine Konvertierung verwendet, um es in den Schlüssel umzuwandeln. Wenn der Schlüssel direkt auf x gesetzt ist, wird der Standardwert von y von klein nach groß geschossen

Das Ergebnis dieser Berechnung ist korrekt, aber der dp dieser Iteration ist keine gültige Sequenz... aber die Länge ist korrekt...

<span style="color: #0000ff">class</span><span style="color: #000000"> Solution:
    </span><span style="color: #008000">#</span><span style="color: #008000"> @param {int[][]} envelopes a number of envelopes with widths and heights</span>
    <span style="color: #008000">#</span><span style="color: #008000"> @return {int} the maximum number of envelopes</span>
    <span style="color: #0000ff">def</span><span style="color: #000000"> maxEnvelopes(self, envelopes):
        </span><span style="color: #008000">#</span><span style="color: #008000"> Write your code here</span>
        <span style="color: #0000ff">import</span><span style="color: #000000"> functools
        nums </span>= sorted(envelopes,key= functools.cmp_to_key(<span style="color: #0000ff">lambda</span> x,y:x[0]-y[0] <span style="color: #0000ff">if</span> x[0] != y[0] <span style="color: #0000ff">else</span> y[1] - x[1<span style="color: #000000">]))
        size </span>=<span style="color: #000000"> len(nums)
        dp </span>=<span style="color: #000000"> []
        </span><span style="color: #0000ff">for</span> x <span style="color: #0000ff">in</span><span style="color: #000000"> range(size):
            low, high </span>= 0, len(dp) - 1
            <span style="color: #0000ff">while</span> low <=<span style="color: #000000"> high:
                mid </span>= (low + high)//2
                <span style="color: #0000ff">if</span> dp[mid][1] < nums[x][1<span style="color: #000000">]:
                    low </span>= mid + 1
                <span style="color: #0000ff">else</span><span style="color: #000000">:
                    high </span>= mid - 1
            <span style="color: #0000ff">if</span> low <<span style="color: #000000"> len(dp):
                dp[low] </span>=<span style="color: #000000"> nums[x]
            </span><span style="color: #0000ff">else</span><span style="color: #000000">:
                dp.append(nums[x])
        </span><span style="color: #0000ff">return</span> len(dp)
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonLintcode-Fragedatensatz 4. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage