zoukankan      html  css  js  c++  java
  • 求和数组项值,使其等于某个目标值

    描述

    Given a set of candidate numbers (C) and a target number (T), find all unique combinations in C where the candidate numbers sums to T. The same repeated number may
    be chosen from C unlimited number of times.
    Note: All numbers (including target) will be positive integers. Elements in a combination (a1, a2, ... , ak) must be in non-descending order. (ie, a1 <= a2 <= ... <= ak). The
    solution set must not contain duplicate combinations. For example, given candidate
    set 2,3,6,7 and target 7, A solution set is:
    [7]
    [2, 2, 3]

    代码

    package com.lilei.spring_boot_db.boot.pack1115;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class combination_sum {
    
    	public static void main(String[] args) {
    		int[] array = new int[]{2,3,6,7};
    		com_sum(array,0,0,8,new ArrayList<Integer>());
    	}
    	
    	static void com_sum(int[] array,int p,int value,int target,List<Integer> list){
    		
    		if (value + array[p] < target){
    			
    			List<Integer> dest1 = new ArrayList<Integer>();
    			
    			copyList(dest1,list);
    			
    			dest1.add(array[p]);
    			
    			com_sum(array,p,value+ array[p],target,dest1);
    			if (p+1 < array.length) {
    				List<Integer> dest2 = new ArrayList<Integer>();
    				copyList(dest2,list);
    				com_sum(array, p + 1, value, target,dest2);
    			}
    		}else if (value + array[p] == target){
    			list.add(array[p]);
    			
    			for(int v:list)
    				System.out.print(v+",");
    			System.out.println();
    			
    		}
    	}
    	
    	static void copyList(List<Integer> dest,List<Integer> src){
    		for(int v:src)
    			dest.add(v);
    	}
    
    }
    

      

  • 相关阅读:
    WebAssembly是什么?
    转《18个实时音视频开发中会用到开源项目》
    Windows Server服务器之介绍及版本信息
    软件开发方法
    SLA(服务等级协议)
    Linux系统之-介绍,主要特性
    Linux系统之-文件系统,桌面环境
    Linux系统之-常用命令及技巧
    网站运维都需要做什么工作
    Oracle Minus关键字
  • 原文地址:https://www.cnblogs.com/lilei2blog/p/7839935.html
Copyright © 2011-2022 走看看