Merge pull request #634 from youngqqcn/fix_0494_bug

Fix 0494 bug
This commit is contained in:
程序员Carl
2021-08-23 10:06:17 +08:00
committed by GitHub
3 changed files with 17 additions and 15 deletions

View File

@ -76,7 +76,7 @@ public:
``` ```
时间复杂度O(n) 时间复杂度O(n)
间复杂度O(1) 间复杂度O(1)
效率如下: 效率如下:
@ -238,16 +238,16 @@ Python
```python3 ```python3
class Solution: class Solution:
def searchInsert(self, nums: List[int], target: int) -> int: def searchInsert(self, nums: List[int], target: int) -> int:
left, right = 0, len(nums) - 1 left, right = 0, len(nums) - 1
while left <= right: while left <= right:
middle = (left + right) // 2 middle = (left + right) // 2
if nums[middle] < target: if nums[middle] < target:
left = middle + 1 left = middle + 1
elif nums[middle] > target: elif nums[middle] > target:
right = middle - 1 right = middle - 1
else: else:
return middle return middle
return right + 1 return right + 1
``` ```

View File

@ -88,7 +88,8 @@
以上分析完毕C++代码如下: 以上分析完毕C++代码如下:
```
```cpp
class Solution { class Solution {
public: public:
int climbStairs(int n) { int climbStairs(int n) {

View File

@ -19,15 +19,15 @@
示例: 示例:
输入nums: [1, 1, 1, 1, 1], S: 3 输入nums: [1, 1, 1, 1, 1], S: 3
输出5 输出5
解释: 解释:
-1+1+1+1+1 = 3 -1+1+1+1+1 = 3
+1-1+1+1+1 = 3 +1-1+1+1+1 = 3
+1+1-1+1+1 = 3 +1+1-1+1+1 = 3
+1+1+1-1+1 = 3 +1+1+1-1+1 = 3
+1+1+1+1-1 = 3 +1+1+1+1-1 = 3
一共有5种方法让最终目标和为3。 一共有5种方法让最终目标和为3。
@ -202,6 +202,7 @@ public:
for (int i = 0; i < nums.size(); i++) sum += nums[i]; for (int i = 0; i < nums.size(); i++) sum += nums[i];
if (S > sum) return 0; // 此时没有方案 if (S > sum) return 0; // 此时没有方案
if ((S + sum) % 2 == 1) return 0; // 此时没有方案 if ((S + sum) % 2 == 1) return 0; // 此时没有方案
if (S + sum < 0) return 0; // 以确保bagSize为正数
int bagSize = (S + sum) / 2; int bagSize = (S + sum) / 2;
vector<int> dp(bagSize + 1, 0); vector<int> dp(bagSize + 1, 0);
dp[0] = 1; dp[0] = 1;
@ -311,7 +312,7 @@ Javascript
const findTargetSumWays = (nums, target) => { const findTargetSumWays = (nums, target) => {
const sum = nums.reduce((a, b) => a+b); const sum = nums.reduce((a, b) => a+b);
if(target > sum) { if(target > sum) {
return 0; return 0;
} }