当前位置: 首页 > news >正文

投诉举报网站建设要求麻阳住房和城乡建设局网站

投诉举报网站建设要求,麻阳住房和城乡建设局网站,网站建立公司 优帮云,wordpress注册邮件一、题目概述 二、思路方向 为了解决这个问题,我们可以使用回溯算法来找到所有可能的组合,使得组合中的数字之和等于目标数 target。因为数组中的元素可以无限制地重复选择,所以在回溯过程中,我们不需要跳过已经选择的元素&#x…

一、题目概述

二、思路方向

       为了解决这个问题,我们可以使用回溯算法来找到所有可能的组合,使得组合中的数字之和等于目标数 target。因为数组中的元素可以无限制地重复选择,所以在回溯过程中,我们不需要跳过已经选择的元素,而是可以从当前位置开始继续选择。

三、代码实现  

import java.util.ArrayList;  
import java.util.Arrays;  
import java.util.List;  public class Solution {  List<List<Integer>> result = new ArrayList<>();  public List<List<Integer>> combinationSum(int[] candidates, int target) {  Arrays.sort(candidates); // 对数组进行排序,有助于提前结束回溯  List<Integer> tempList = new ArrayList<>();  backtrack(candidates, target, 0, tempList);  return result;  }  private void backtrack(int[] candidates, int remain, int start, List<Integer> tempList) {  if (remain < 0) {  return; // 如果剩余需要达到的和已经是负数,则剪枝  }  if (remain == 0) {  result.add(new ArrayList<>(tempList)); // 如果剩余需要达到的和为0,则找到了一种符合条件的组合  return;  }  for (int i = start; i < candidates.length; i++) {  // 因为元素可以重复选择,所以我们不需要跳过已经选择过的元素  // 但可以通过排序和剪枝来避免不必要的搜索  if (i > start && candidates[i] == candidates[i - 1]) {  continue; // 跳过重复的元素,避免产生重复的组合  }  tempList.add(candidates[i]);  backtrack(candidates, remain - candidates[i], i, tempList); // 注意这里是从i开始,允许选择相同的数字  tempList.remove(tempList.size() - 1); // 回溯,撤销选择  }  }  public static void main(String[] args) {  Solution solution = new Solution();  int[] candidates = {2, 3, 6, 7};  int target = 7;  List<List<Integer>> combinations = solution.combinationSum(candidates, target);  for (List<Integer> combination : combinations) {  System.out.println(combination);  }  }  
}

执行结果: 

四、小结

       在这个解决方案中,我们首先对数组进行排序,这是为了在处理过程中能够更方便地进行剪枝和跳过重复元素。然后,我们使用一个递归函数 backtrack 来遍历所有可能的组合。在递归函数中,我们检查当前的和是否等于目标值,或者是否已经是负数(如果是负数则剪枝)。然后,我们遍历数组,从当前位置开始选择元素,并递归地调用 backtrack 函数,传入剩余需要达到的和、下一个开始的位置(允许选择相同的数字)、以及当前的组合列表。最后,在回溯过程中,我们需要撤销选择,以便尝试其他可能的组合。

       注意,在这个解决方案中,我们使用了 List<List<Integer>> 来存储所有可能的组合,并且使用 ArrayList 作为内部的临时列表来构建每个组合。在找到一种符合条件的组合时,我们通过创建一个新的 ArrayList 实例来将其添加到结果列表中,以避免在后续的回溯过程中修改已经添加到结果列表中的组合。

 结语 

只有流过血的手指

才能弹出世间的绝唱

!!!

http://www.yayakq.cn/news/488115/

相关文章:

  • 陕西公路工程建设有限公司网站淘宝网站怎么做会话保持的
  • 企业网站建设的基本原则网上有哪些网站做兼职
  • 电子商务网站的建设的原理东莞做营销型网站的
  • 上海杨浦区网站建设网站能搜索到
  • 广州网站建设商城网站结构有哪几种
  • wordpress文章换行广西优化网站 优帮云
  • 个人网站开发的背景乌海网站建设
  • 温州住房建设网站网页素材免费下载
  • 做模板网站乐云seo效果好商城网站如何做
  • 交互型网站网架结构厂家电话
  • 优惠建设网站网站建设和维护pdf
  • 湘潭做网站问下磐石网络WordPress安装aplayer
  • 单页网站制作需要多少钱建筑业服务平台
  • 福建省建设资格注册中心网站php网站建设的几个流程
  • html5开发的网站网站seo怎样做
  • 苏宁易购网站建设分析网站建设开发公司地址
  • 自己的网站怎么编辑北京东城区做网站的公司
  • 网站后台上传附件杨振峰网站开发
  • 网站设计与网站建设课程代码网页生成器
  • 汕头网站设计开发移动端芯片综合性能排行榜
  • 乐趣做网站旅游类网站建设的结论
  • wordpress显示访客常州网站优化公司
  • 有没有像一起做网店做男装的网站淮北市建设工程信息网
  • 寻找扬中网站建设网站建设实训存在的问题
  • 曲靖市建设局网站wordpress 注册 邮件
  • 江西中恒建设集团网站南昌网站建设公司好么
  • 有什么做旅游攻略的网站好设计托管网站建设
  • 品牌网站设计vellum wordpress
  • 台州网站排名优化最佳搜索引擎
  • 佳木斯万达建设网站wordpress优惠券采集