leetcode303-304 Range Sum Query Immutable

2018-03-07
阅读 3 分钟
2k
这一题思路很简单,因为sum[i-j] = sum[0~j] - sum[0~(i-1)]。我们只需要通过一圈遍历计算出每个下标至0的所有数字的和即可。而利用动态规划则很容易知道sum[0~j] = sum[0~j-1] + num[j]。

leetcode494. Target Sum

2018-03-05
阅读 3 分钟
2.2k
直观的来说,我们可以将所有的情况都尝试一遍并且将可能构成结果的集合统计下来。就以题目中例子来说,原始的输入为[1,1,1,1,1],目标值为3。那么我们假设先给第一个值设置为正数,则只需要知道[1,1,1,1]组合成目标值2的集合个数即可。通过不断的递归调用,当遍历到数组的尽头时,我们只需要知道当前的目标值是否为0,如...

leetcode279. Perfect Squares

2018-02-24
阅读 3 分钟
2.4k
我们可以用另一种思路来拆解n:比如:numSquares(1) = 1;numSquares(2) = numSquares(1)+1numSquares(3) = numSquares(3-1*1) + 1numSquares(4) = 1numSquares(5) = min(numSquares(5-1*1)+1, numSquares(5-2*2)+1)numSquares(10) = min(numSquares(10-1*1)+1, numSquares(10-2*2)+1, numSquares(10-3*3)+1)