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);
    	}
    
    }
    

      

  • 相关阅读:
    c语言程序设计(学生成绩管理系统)————提供给计算机系c语言初学者参考
    C语言之指针排序
    C语言之冒泡法一
    C语言之统计字符
    C语言之while输出菱形
    C语言之do_while输出菱形
    C语言之素数的判断
    C语言之输出菱形
    基于RT-THREAD的定时鱼缸喂食器设计
    dx/dy=1/y’求其二阶导
  • 原文地址:https://www.cnblogs.com/lilei2blog/p/7839935.html
Copyright © 2011-2022 走看看