zoukankan      html  css  js  c++  java
  • LintCode "k Sum" !!

    Great great DP learning experience:
    http://www.cnblogs.com/yuzhangcmu/p/4279676.html

    Remember 2 steps of DP: a) setup state transfer equation; b) setup selection strategy.

    a) States

    From problem statement, we find 3 variables: array size, k and target. So it is 3D DP:

    dp[i][j][t]: in previous i elements, we pick j of them, to reach value t - number of results

    b) Selection Strategy

    Usually for 1D array, selection strategy is very simple: with A[i] - pick it or not. Combined with step a, dp[i][j][t] is result of the 2 choices - pick or not:

    dp[i][j][t] = dp[i-1][j-1][t-A[i]](pick it) + dp[i-1][j][t](no pick)

    Optimization: dimension i can be eliminated.

    Details: To start: all dp[*][0][0] = 1

  • 相关阅读:
    Git
    Spring
    Linux
    Linux
    Linux
    Linux
    Linux
    Linux
    Linux
    Linux
  • 原文地址:https://www.cnblogs.com/tonix/p/4922254.html
Copyright © 2011-2022 走看看