494. 目标和

给你一个整数数组 nums 和一个整数 target 。

向数组中的每个整数前添加 ‘+’ 或 ‘-’ ,然后串联起所有整数,可以构造一个 表达式 :

例如,nums = [2, 1] ,可以在 2 之前添加 ‘+’ ,在 1 之前添加 ‘-’ ,然后串联起来得到表达式 “+2-1” 。
返回可以通过上述方法构造的、运算结果等于 target 的不同 表达式 的数目。

示例 1:

输入:nums = [1,1,1,1,1], target = 3
输出:5
解释:一共有 5 种方法让最终目标和为 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
示例 2:

输入:nums = [1], target = 1
输出:1

提示:

1 <= nums.length <= 20
0 <= nums[i] <= 1000
0 <= sum(nums[i]) <= 1000
-1000 <= target <= 100

类似于二叉树的递归过程

class Solution {
public:
    int memo[25][2010];
    int dfs(int pos,vector<int>& nums,int sum,int target){
        if(pos==nums.size()){
            if(sum==target) return 1;
            return 0;
        }
        if(memo[pos][sum+1005]!=0x3f3f3f3f) return memo[pos][sum+1005];
        int res = dfs(pos+1,nums,sum+nums[pos],target)+dfs(pos+1,nums,sum-nums[pos],target);
        memo[pos][sum+1005] = res;
        return res;
    }
    int findTargetSumWays(vector<int>& nums, int target) {
       memset(memo,0x3f,sizeof(memo));
       return dfs(0,nums,0,target);
    }
};
class Solution {
public:
    int findTargetSumWays(vector<int>& nums, int target) {
       int dp[21][1005];
       int sum=0;
       memset(dp,0,sizeof(dp));
       for(int i = 0;i<nums.size();i++) sum+=nums[i];
       int w = (sum+target)/2;
       if(target>sum||(sum+target)&1==1) return 0;
       dp[0][0] = 1;
       for(int i = 1;i<=nums.size();i++){
           for(int j = 0;j<=w;j++){
               if(j<nums[i-1]) dp[i][j] = dp[i-1][j];
               else dp[i][j] = dp[i-1][j] + dp[i-1][j-nums[i-1]];
           }
       }
       return dp[nums.size()][w];
    }
};
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: TL494是一种常用的PWM控制器芯片,可以用于设计可调升压电路。以下是一种基本的TL494可调升压电路图: 在电路图中,主要包括TL494芯片、驱动变压器、功率开关管、滤波电容、输出电路以及调节电路。 TL494芯片是控制电路的核心,在电路中起到PWM信号生成器的作用。它通过外接的电阻和电容调节频率和占空比,以实现对输出电压的调整。 驱动变压器是将输入电压转换为合适的驱动信号的部件。它通常由几个线圈构成,主要有一个输入线圈、一个输出线圈和一个反馈线圈。输入线圈接收来自输入电源的电流,输出线圈则提供经过变压的电流给功率开关管,反馈线圈用于回馈电路的信息。 功率开关管是负责开关输入电流的部件,它根据接收到的PWM信号来控制电流的开闭。通常使用MOSFET或者开关二极管作为功率开关管。 滤波电容则是用于滤除输出电压中的高频噪声并稳定输出电压。 调节电路通过改变TL494芯片的反馈电压来实现对输出电压的调节。一般来说,可以使用一个电位器来调节反馈电压的大小,从而改变输出电压。 通过合理选择元器件和调整反馈电压,可以实现对输出电压的精确调节,从而满足不同应用的需求。 值得注意的是,由于涉及到高压电路,设计和实现过程中需要遵循安全设计原则,并且要根据实际情况合理选择电压和电流等参数,确保电路的可靠性与稳定性。 ### 回答2: TL494是一款常用的可调升压电路图控制器,主要用于提供可调的直流电压输出。它采用了PWM(脉宽调制)技术,能够在不同的工作频率下调整输出电压,适用于各种升压应用。 首先,在电路中,我们需要输入一个低电压,通常为12V或24V的直流电源。然后将这个输入电压连接到TL494芯片的VCC引脚上,以供芯片正常工作。接着,将芯片的GND引脚接地,以建立电路的参考地。 接下来,我们需要设置输出电压的目标值。通过将一个可变电阻连接到芯片的反馈引脚FB上,我们可以调整输出电压。当电路稳定后,芯片将通过控制开关管的开关频率和占空比来调整输出电压,使其保持在设定的目标值。 同时,为了保护电路中的元件和确保电路的稳定性,我们还需要添加滤波电容和电感。滤波电容通常连接在输入和输出之间,用于平滑电压波动。电感则用于限制电流的变化率,以减小电压波动。 最后,我们需要连接负载,即需要升压的设备或电路。将负载连接到芯片的开关输出引脚上,通过开关管来提供稳定的输出电压。 综上所述,TL494可调升压电路图是一个基于TL494芯片的PWM控制器电路,用于提供可调的直流升压输出。通过设置反馈引脚上的可变电阻,我们可以调整输出电压,同时通过添加滤波电容和电感,保证电路的稳定性和可靠性。 ### 回答3: TL494是一款经典的可调升压电路图。它是一款具有PWM控制功能的集成电路,广泛应用于电源的设计与控制。以下是一个基本的TL494可调升压电路图的简单介绍: 这个电路图包含了TL494集成电路、开关管、变压器、滤波电容等元件。首先,将一个输入电压通过一个整流桥整流,使其变为带有脉冲的直流电压。然后,这个直流电压经过一个滤波电容,平滑成较为稳定的直流电压。 接下来,使用TL494集成电路,通过对它的控制信号进行调整,来控制开关管的导通和断开,从而控制变压器的工作频率和占空比。在变压器的作用下,输出电压经过一次整流、滤波等处理后,得到所需的升压效果。 通过调整TL494集成电路的调整电阻,可以改变输出电压的大小。调整电阻的变化会改变集成电路内部的反馈电压,进而引起开关管的导通和断开时间的变化。通过这种方式,可以实现对输出电压的调节和控制。 此外,为了保证电路的稳定性和可靠性,在开关管后需要添加适当的保护电路,如过压、过流、过温等保护电路,以保护整个电路的安全运行。 总结来说,TL494可调升压电路图是一种利用TL494集成电路的PWM控制功能,通过调整调整电阻来控制输出电压大小的电路。它被广泛应用于电源设计和控制中,具有稳定性高、可靠性强的特点。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值