Merge pull request #1489 from wzqwtt/dp06

添加(0494.目标和) Scala版本
This commit is contained in:
程序员Carl
2022-07-30 09:46:10 +08:00
committed by GitHub

View File

@ -251,7 +251,7 @@ dp[j] += dp[j - nums[i]];
## 其他语言版本 ## 其他语言版本
Java ### Java
```java ```java
class Solution { class Solution {
public int findTargetSumWays(int[] nums, int target) { public int findTargetSumWays(int[] nums, int target) {
@ -272,7 +272,7 @@ class Solution {
} }
``` ```
Python ### Python
```python ```python
class Solution: class Solution:
def findTargetSumWays(self, nums: List[int], target: int) -> int: def findTargetSumWays(self, nums: List[int], target: int) -> int:
@ -288,7 +288,7 @@ class Solution:
return dp[bagSize] return dp[bagSize]
``` ```
Go ### Go
```go ```go
func findTargetSumWays(nums []int, target int) int { func findTargetSumWays(nums []int, target int) int {
sum := 0 sum := 0
@ -323,7 +323,7 @@ func abs(x int) int {
} }
``` ```
Javascript ### Javascript
```javascript ```javascript
const findTargetSumWays = (nums, target) => { const findTargetSumWays = (nums, target) => {
@ -353,6 +353,8 @@ const findTargetSumWays = (nums, target) => {
``` ```
### TypeScript
TypeScript: TypeScript:
```ts ```ts
@ -375,7 +377,25 @@ function findTargetSumWays(nums: number[], target: number): number {
}; };
``` ```
### Scala
```scala
object Solution {
def findTargetSumWays(nums: Array[Int], target: Int): Int = {
var sum = nums.sum
if (math.abs(target) > sum) return 0 // 此时没有方案
if ((sum + target) % 2 == 1) return 0 // 此时没有方案
var bagSize = (sum + target) / 2
var dp = new Array[Int](bagSize + 1)
dp(0) = 1
for (i <- 0 until nums.length; j <- bagSize to nums(i) by -1) {
dp(j) += dp(j - nums(i))
}
dp(bagSize)
}
}
```
----------------------- -----------------------
<div align="center"><img src=https://code-thinking.cdn.bcebos.com/pics/01二维码一.jpg width=500> </img></div> <div align="center"><img src=https://code-thinking.cdn.bcebos.com/pics/01二维码一.jpg width=500> </img></div>