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

做电商的进货网站北京网站建设外包公司排名

做电商的进货网站,北京网站建设外包公司排名,网页游戏交易网站,我们公司想做个网站刷题顺序及思路来源于代码随想录#xff0c;网站地址#xff1a;https://programmercarl.com 目录 77. 组合 216. 组合总和 III 17. 电话号码的字母组合 39. 组合总和 40. 组合总和 II 77. 组合 给定两个整数 n 和 k#xff0c;返回范围 [1, n] 中所有可能的 k 个数的…刷题顺序及思路来源于代码随想录网站地址https://programmercarl.com 目录 77. 组合 216. 组合总和 III 17. 电话号码的字母组合 39. 组合总和 40. 组合总和 II 77. 组合 给定两个整数 n 和 k返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以按 任何顺序 返回答案。 输入n 4, k 2 输出 [[2,4],[3,4],[2,3],[1,2],[1,3],[1,4], ] import java.util.ArrayList; import java.util.List; import java.util.Scanner;/*** author light* Description 组合** 给定两个整数 n 和 k返回范围 [1, n] 中所有可能的 k 个数的组合。** 你可以按 任何顺序 返回答案。* create 2023-08-27 10:50*/ public class CombineTest {public static void main(String[] args) {Scanner inputnew Scanner(System.in);int n input.nextInt();int k input.nextInt();System.out.println(combine(n, k));}public static ListListInteger resnew ArrayList(); //存放结果集public static ListInteger pathnew ArrayList(); //存放路径变量public static ListListInteger combine(int n, int k) {backtracking(n,k,1);return res;}//startIndex:记录每层递归数组起始位置---防止数组元素重复---组合private static void backtracking(int n, int k, int startIndex) {if(path.size()k){res.add(new ArrayList(path));return;}//剪枝操作可以剪枝的地方就在递归中每一层的for循环所选择的起始位置。//如果for循环选择的起始位置之后的元素个数已经不足我们需要的元素个数了那么就没有必要搜索了。/*接下来看一下优化过程如下已经选择的元素个数path.size();还需要的元素个数为: k - path.size();在集合n中至多要从该起始位置 : n - (k - path.size()) 1开始遍历为什么有个1呢因为包括起始位置我们要是一个左闭的集合。*/for (int i startIndex; i n-(k- path.size())1; i) {path.add(i);backtracking(n,k,i1);//回溯path.remove(path.size()-1);}} }216. 组合总和 III 找出所有相加之和为 n 的 k 个数的组合且满足下列条件 只使用数字1到9每个数字 最多使用一次  返回 所有可能的有效组合的列表 。该列表不能包含相同的组合两次组合可以以任何顺序返回。 输入: k 3, n 7 输出: [[1,2,4]] 解释: 1 2 4 7 没有其他符合的组合了。 import java.util.ArrayList; import java.util.List; import java.util.Scanner;/*** author light* Description 组合总和III** create 2023-08-27 11:18*/ public class CombinationSum3Test {public static void main(String[] args) {Scanner inputnew Scanner(System.in);int n input.nextInt();int k input.nextInt();System.out.println(combinationSum3(k, n));}public static ListListInteger resnew ArrayList();public static ListInteger pathnew ArrayList();public static ListListInteger combinationSum3(int k, int n) {backtracking(k,n,1,0);return res;}private static void backtracking(int k, int n, int startNum,int sum) {if(sumn){return;}if(path.size()k){if(sumn){res.add(new ArrayList(path));}return;}for (int i startNum; i 9-(k- path.size())1 ; i) {path.add(i);sumi;backtracking(k,n,i1,sum);//回溯path.remove(path.size()-1);sum-i;}} }17. 电话号码的字母组合 给定一个仅包含数字 2-9 的字符串返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下与电话按键相同。注意 1 不对应任何字母。 输入digits 23 输出[ad,ae,af,bd,be,bf,cd,ce,cf] import java.util.ArrayList; import java.util.List; import java.util.Scanner;/*** author light* Description 电话号码的字母组合* create 2023-08-27 12:15*/ public class LetterCombinationsTest {public static void main(String[] args) {Scanner inputnew Scanner(System.in);String digitsinput.next();System.out.println(letterCombinations(digits));}public static ListString listnew ArrayList();public static ListString letterCombinations(String digits) {if(digitsnull||digits.length()0){return list;}//初始对应所有的数字为了直接对应2-9新增了两个无效的字符串String[] numString {, , abc, def, ghi, jkl, mno, pqrs, tuv, wxyz};backtracking(digits,numString,0);return list;}public static StringBuilder sbnew StringBuilder();private static void backtracking(String digits, String[] numString, int num) {if(numdigits.length()){list.add(sb.toString());return;}String stringnumString[digits.charAt(num)-0];for (int i 0; i string.length() ; i) {sb.append(string.charAt(i));backtracking(digits,numString,num1);sb.deleteCharAt(sb.length()-1);}} } 39. 组合总和 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target 找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 并以列表形式返回。你可以按 任意顺序 返回这些组合。 candidates 中的 同一个 数字可以 无限制重复被选取 。如果至少一个数字的被选数量不同则两种组合是不同的。  对于给定的输入保证和为 target 的不同组合数少于 150 个。 输入candidates [2,3,6,7], target 7 输出[[2,2,3],[7]] 解释 2 和 3 可以形成一组候选2 2 3 7 。注意 2 可以使用多次。 7 也是一个候选 7 7 。 仅有这两种组合。 import java.util.ArrayList; import java.util.List; import java.util.Scanner;/*** author light* Description 组合总和** create 2023-08-27 15:58*/ public class CombinationSumTest {public static void main(String[] args) {Scanner inputnew Scanner(System.in);int ninput.nextInt();int[] candidatesnew int[n];for (int i 0; i n; i) {candidates[i]input.nextInt();}int target input.nextInt();System.out.println(combinationSum(candidates, target));}public static ListListInteger resnew ArrayList();public static ListInteger pathnew ArrayList();public static ListListInteger combinationSum(int[] candidates, int target) {backtracking(candidates,target,0,0);return res;}private static void backtracking(int[] candidates, int target, int sum, int startIndex) {if(sumtarget){res.add(new ArrayList(path));return;}if(sumtarget){return;}for (int i startIndex; i candidates.length; i) {path.add(candidates[i]);sumcandidates[i];backtracking(candidates,target,sum,i);path.remove(path.size()-1);sum-candidates[i];}} }40. 组合总和 II 给定一个候选人编号的集合 candidates 和一个目标数 target 找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数字在每个组合中只能使用 一次 。 注意解集不能包含重复的组合。  输入: candidates [10,1,2,7,6,1,5], target 8, 输出: [ [1,1,6], [1,2,5], [1,7], [2,6] ] import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Scanner;/*** author light* Description 组合总和II* create 2023-08-27 16:11*/ public class CombinationSum2Test {public static void main(String[] args) {Scanner inputnew Scanner(System.in);int ninput.nextInt();int[] candidatesnew int[n];for (int i 0; i n; i) {candidates[i]input.nextInt();}int target input.nextInt();System.out.println(combinationSum2(candidates, target));}public static ListListInteger resnew ArrayList();public static ListInteger pathnew ArrayList();public static ListListInteger combinationSum2(int[] candidates, int target) {Arrays.sort(candidates);int[] usednew int[candidates.length]; //判断集合重元素是否重复使用Arrays.fill(used,0);backtracking(candidates,target,0,used);return res;}private static void backtracking(int[] candidates, int target,int startIndex,int[] used) {if(target0){res.add(new ArrayList(path));return;}for (int i startIndex; i candidates.lengthtarget-candidates[i]0; i) {//要进行树层去重横向if(i0candidates[i]candidates[i-1]used[i-1]0){continue;}path.add(candidates[i]);target-candidates[i];used[i]1;backtracking(candidates,target,i1,used);path.remove(path.size()-1);targetcandidates[i];used[i]0;}} }
http://www.huolong8.cn/news/133765/

相关文章:

  • 微信公众号微网站建设一个空间做多个网站
  • dw建设网站网页设计实训报告书
  • 新手学做网站要学什么知识图文教程网站开发 指导
  • 网站开发公司资质电子商务网站建设与管理
  • 网络营销是什么部门手机优化软件哪个好
  • 长沙网站开发公小程序价格表一览表
  • 网站制作收费明细表网站域名如何续费
  • 网站的设计风格与特点永安市住房与城乡建设局网站
  • 五屏网站建设代理商南宁中考招生信息网
  • 支持企业网站发布要怎么做chinacd小说wordpress
  • 提供石家庄网站推广做网站 分辨率应该是多少
  • seo优化文章网站三星网上商城分期
  • 电商网站开发常用代码苏州代做淘宝网站
  • 个人网站免费注册小程序电商平台排名
  • 企业网站建设犇类建筑wordpress写文章更新失败
  • 卖货网站平台WordPress添加精华贴图
  • 定制网站模板站佛山做外贸网站信息
  • 黄页网络的推广网站有哪些好惠城网站设计
  • 北京住房城乡建设网站网站宣传视频
  • 虚拟主机网站源码简单的工作室网站模板
  • 赣州做网站多少钱网站建设作为
  • 水果网站 模板如何重装电脑的wordpress
  • 厂房网行业门户网站建设策划方案ppt网页设计教程下载
  • 三亚做网站那家效果好wordpress 搜索栏js
  • 延吉最好的网站建设公司网站建设总体上可划分为两个阶段
  • 股票专业网站购物网站开发公司
  • 专业集团门户网站建设服务商python做网站的实例
  • 创新的企业网站制作张家港本地论坛
  • 网站开发后端选择网站用的空间
  • 雄安网站制作多少钱班级优化大师功能介绍