K數(shù)和問題

Leetcode上有一個系列的問題

  1. 在一個數(shù)組中找尋2個數(shù)的和值為target
  2. 在一個數(shù)組中找尋3個數(shù)的和值為target
  3. 在一個數(shù)組中找尋4個數(shù)的和值為target
    在一個給定的數(shù)組A中找尋k個數(shù),使其值等于target,一共有多少種方案。

這道題用DP來做。
result[i][j][target]
i表示數(shù)組的大小。j 標識找尋多少個值。k標識目標值。A表示給定數(shù)組。
所有有

result[i][j][target] = result[i - 1][j - 1][target - A[i]]  + result[i - 1][j][target];

站在i的位置考慮,即考慮是否需要i位的值。
result[i - 1][j][target] 表示不需要i位的值
result[i - 1][j - 1][target - A[i]] 表示需要i位的值

    public int kSum(int[] A, int k, int target) {
        int result[][][] = new int[A.length + 1][k + 1][target + 1];
        for (int i = 0; i < A.length + 1; i++) {
            result[i][0][0] = 1;
        }
        for (int h = 1; h < A.length + 1 ; h++) {
            int min = Math.min(h, k);
            for (int i = 1; i <= min; i++) {
                for (int j = 1; j <= target; j++) {
                    if(j >= A[h - 1]) {
                        result[h][i][j] = result[h - 1][i][j] + result[h - 1][i - 1][j - A[h- 1]];
                    }else {
                        result[h][i][j] = result[h - 1][i][j];
                    }
                }
            }
        }
        printNums(result[A.length], k + 1, target +1);
        return result[A.length ][k][target];
    }

另外有一種比較簡便的方法:
參考 http://www.itdecent.cn/p/e5a6d7c356e6
不過我看不太懂怎么從3維簡化成了一位。以及倒序便利。。。慚愧……

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • 在C語言中,五種基本數(shù)據(jù)類型存儲空間長度的排列順序是: A)char B)char=int<=float C)ch...
    夏天再來閱讀 4,061評論 0 2
  • HTML 5 HTML5概述 因特網(wǎng)上的信息是以網(wǎng)頁的形式展示給用戶的,因此網(wǎng)頁是網(wǎng)絡信息傳遞的載體。網(wǎng)頁文件是用...
    阿啊阿吖丁閱讀 4,955評論 0 0
  • 第5章 引用類型(返回首頁) 本章內(nèi)容 使用對象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學一百閱讀 3,684評論 0 4
  • 9點48分,小家伙終于在第七本幼兒繪本的故事中甜甜睡去。我也口干舌燥,算算時間,每本書讀大約六分鐘,也四十多分鐘了...
    幸福鳥_350e閱讀 183評論 0 1
  • 在電影《后會無期》里,韓寒說,“聽過很多道理,依然過不好這一生”。這句話炸開了很多人的心鍋,刷爆了很多人的朋友圈。...
    朝久晚悟閱讀 400評論 2 1

友情鏈接更多精彩內(nèi)容