Dynamic Programming: Knapsack - Last Stone Weight II
In the following buggy code for lastStoneWeightII, which line causes incorrect results?
```python
def lastStoneWeightII(stones):
total = sum(stones)
half = total // 2
dp = [False] * (half + 1)
# dp[0] = True is missing
for stone in stones:
for j in range(half, stone - 1, -1):
dp[j] = dp[j] or dp[j - stone]
for j in range(half, -1, -1):
if dp[j]:
return total - 2 * j
```
