zoukankan      html  css  js  c++  java
  • 和为定值的m个数

    和为定值的m个数

    np 问题(时间复杂度o(2**n))

    code1:

    暴力递归

    解决 只有正数的情况

     1 class Solution {
     2     private List<List<Integer>> res = new ArrayList<List<Integer>>();
     3     public List<List<Integer>> fourSum(int[] nums, int target) {
     4         boolean[] a = new boolean[nums.length];
     5         for(int i = 0;i <a.length-1;i++)
     6             a[i] = false;
     7         sum(nums,a,0,0,target);
     8         return res;
     9     }
    10     private void sum(int[] nums,boolean[] a,int i,int has,int target){
    11         if(i>a.length-1) return;
    12         if(has + nums[i] == target){
    13             a[i] = true;
    14             
    15             res.add(add_res(nums,a));
    16             a[i] = false;
    17         }
    18         a[i] = true;
    19         sum(nums,a,i+1,has+nums[i],target);
    20         a[i] = false;
    21         sum(nums,a,i+1,has,target);
    22     }
    23     private List<Integer> add_res (int[] nums,boolean[] a){
    24         List<Integer> res = new ArrayList<Integer>();
    25         for(int i = 0;i<a.length;i++)
    26             if(a[i])
    27                 res.add(nums[i]);
    28         return res;
    29     }
    30 }
  • 相关阅读:
    Jakarta雅加达项目简介
    java的Commons包简介
    装饰者模式
    命令模式
    桥接模式
    适配器模式
    观察者模式
    模板模式
    责任链模式
    CentOS搭建NAT和DHCP服务,实现共享上网
  • 原文地址:https://www.cnblogs.com/zle1992/p/8456019.html
Copyright © 2011-2022 走看看