题目
题目链接:
https://www.nowcoder.com/practice/7a64b6a6cf2e4e88a0a73af0a967a82b
解法
dfs
参考答案C++
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param nums int整型vector
* @param target int整型
* @return int整型
*/
int combination(vectorint>& nums, int target) {
int cnt = 0;
int* ans = &cnt;
dfs(nums, target, ans);
return *ans;
}
void dfs(vectorint>& nums, int sum, int* ans) {
if (sum == 0) {
(*ans)++;
return;
}
if (sum 0)
return;
for (int i = 0; i nums.size(); i++) {
sum -= nums[i];
dfs(nums, sum, ans);
sum += nums[i]; //恢复现场,又叫回溯
}
}
};
参考答案Java
`import ja服务器托管va.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param nums int整型一维数组
* @param target int整型
* @return int整型
*/
public int combination (int[] nums, int target) {
int[] ans = {0};
dfs(nums, target, ans);
return ans[0];
}
public void dfs(int[] nums, int sum, int[] ans) {
if (sum == 0) {
ans[0]++;
return;
}
if (sum
}`
参考答案Go
package main
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param nums int整型一维数组
* @param target int整型
* @return int整型
*/
func combination(nums []int, target int) int {
ans := [1]int{0}
dfs(nums, target, &ans)
return ans[0]
}
func dfs(nums []int, sum int, ans *[1]int) {
if sum == 0 {
ans[0]++
return
}
if sum 0 {
return
}
for i := 0; i len(nums); i++ {
sum -= nums[i]
dfs(nums, sum, ans)
sum += nums[i] //恢复现场 又叫回溯
}
}
参考答案PHP
<?php
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param nums int整型一维数组
* @param target int整型
* @return int整型
*/
function combination( $num服务器托管s , $target )
{
$ans = 0;
dfs($nums,$target,$ans);
return $ans;
}
function dfs($nums,$sum,&$ans){
if($sum ==0){
$ans++;
return;
}
if($sum 0)
return;
for($i=0;$icount($nums);$i++){
$sum-=$nums[$i];
dfs($nums,$sum,$ans);
$sum+=$nums[$i];//恢复现场,又叫回溯
}
}
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
黑马程序员JavaWeb开发教程 文章目录 一、请求 1、简单参数 2、实体参数 3、数组集合参数 (1)数组参数 (2)集合参数 4、日期参数 5、json参数 (1)在Postman中怎么发起请求来传递JSON格式的请求参数 (2)在服务端如何接收JSON…