input: Write a function to compute the maximum value for the 0-1 knapsack problem using dynamic programming. The function should take as input the knapsack's capacity, a list of item weights, and a list of item values, and return the maximum possible value that can be obtained. If either the list of weights or values is empty, the function should return 0.
  assert knapSack(50, [10, 20, 30], [60, 100, 120])==220
  assert knapSack(60, [10, 20, 30], [60, 100, 120])==280
  assert knapSack(10, [10, 20, 30], [60, 100, 120])==60
  assert knapSack(0, [10, 20, 30], [60, 100, 120])==0
  assert knapSack(50, [], [])==0
output: def knapSack(capacity, weights, values):
      if not weights or not values:
          return 0
      n = len(weights)
      dp = [[0] * (capacity + 1) for _ in range(n + 1)]
      
      for i in range(1, n + 1):
          for w in range(capacity + 1):
              if weights[i-1] <= w:
                  dp[i][w] = max(dp[i-1][w], dp[i-1][w-weights[i-1]] + values[i-1])
              else:
                  dp[i][w] = dp[i-1][w]
      
      return dp[n][capacity]