Heim > Java > javaLernprogramm > Hauptteil

LeetCode DayDynamic Programming Teil 5

WBOY
Freigeben: 2024-07-16 12:01:49
Original
677 Leute haben es durchsucht

LeetCode DayDynamic Programming Part 5

518. Münzwechsel II

Sie erhalten eine ganzzahlige Array-Münze, die Münzen verschiedener Nennwerte darstellt, und einen ganzzahligen Betrag, der einen Gesamtgeldbetrag darstellt.

Gibt die Anzahl der Kombinationen zurück, aus denen dieser Betrag besteht. Wenn dieser Geldbetrag durch keine Kombination der Münzen gedeckt werden kann, geben Sie 0 zurück.

Sie können davon ausgehen, dass Sie von jeder Münzart unendlich viele haben.

Die Antwort passt garantiert in eine vorzeichenbehaftete 32-Bit-Ganzzahl.

Beispiel 1:

Eingabe: Betrag = 5, Münzen = [1,2,5]
Ausgabe: 4
Erläuterung: Es gibt vier Möglichkeiten, den Betrag zusammenzustellen:
5=5
5=2+2+1
5=2+1+1+1
5=1+1+1+1+1
Beispiel 2:

Eingabe: Betrag = 3, Münzen = [2]
Ausgabe: 0
Erklärung: Der Betrag von 3 kann nicht nur mit 2er-Münzen gedeckt werden.
Beispiel 3:

Eingabe: Betrag = 10, Münzen = [10]
Ausgabe: 1

Einschränkungen:

1 <= Münzen.Länge <= 300
1 <= Münzen[i] <= 5000
Alle Münzwerte sind einzigartig.
0 <= Betrag <= 5000
Originalseite

    public int change(int amount, int[] coins) {
        int[][] dp = new int[coins.length+1][amount+1];
        for(int i=0; i<=coins.length; i++){
            dp[i][0] = 1;
        }
        for(int i=1; i<= coins.length; i++){
            for(int j=1; j<=amount; j++){
                if(j<coins[i-1]){
                    dp[i][j] = dp[i-1][j];
                }else{
                    dp[i][j] = dp[i-1][j] + dp[i][j-coins[i-1]];
                }

            }
        }
                    // Arrays.stream(dp).map(Arrays::toString).forEach(System.out::println);
        return dp[coins.length][amount];
    }
Nach dem Login kopieren
    public int change(int amount, int[] coins) {
        int[] dp = new int[amount+1];
        dp[0] = 1;
        for(int i=0; i< coins.length; i++){
            for(int j=coins[i]; j<=amount; j++){
                dp[j] = dp[j] + dp[j-coins[i]];
            }
            System.out.println(Arrays.toString(dp));
        }
        return dp[amount];
    }
Nach dem Login kopieren

377. Kombinationssumme IV

Geben Sie bei einem Array unterschiedlicher Ganzzahlen und einem ganzzahligen Zielziel die Anzahl der möglichen Kombinationen zurück, die sich zum Ziel addieren.

Die Testfälle werden so generiert, dass die Antwort in eine 32-Bit-Ganzzahl passt.

Beispiel 1:

Eingabe: Nums = [1,2,3], Ziel = 4
Ausgabe: 7
Erklärung:
Die möglichen Kombinationsmöglichkeiten sind:
(1, 1, 1, 1)
(1, 1, 2)
(1, 2, 1)
(1, 3)
(2, 1, 1)
(2, 2)
(3, 1)
Beachten Sie, dass unterschiedliche Sequenzen als unterschiedliche Kombinationen gezählt werden.
Beispiel 2:

Eingabe: Nums = [9], Ziel = 3
Ausgabe: 0

Einschränkungen:

1 <= nums.length <= 200
1 <= nums[i] <= 1000
Alle Elemente von Zahlen sind einzigartig.
1 <= Ziel <= 1000

Folge: Was passiert, wenn negative Zahlen im angegebenen Array zulässig sind? Wie verändert es das Problem? Welche Einschränkung müssen wir der Frage hinzufügen, um negative Zahlen zuzulassen?

    public int combinationSum4(int[] nums, int target) {
        int[] dp = new int[target+1];
        dp[0] = 1;
        for(int i=1; i<=target; i++){
            for(int j=0; j<nums.length; j++){
                if(nums[j] <= i){
                    dp[i] = dp[i] + dp[i-nums[j]];
                }
            }
            // System.out.println(Arrays.toString(dp));
        }
        return dp[target];
    }
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonLeetCode DayDynamic Programming Teil 5. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!