美文网首页
部分和问题

部分和问题

作者: nafoahnaw | 来源:发表于2018-06-07 19:37 被阅读0次
/**
 * 给定参数a1,a2,...,an,判断是否可以从中选出若干数,使得他们的和恰好为k
 * @author haofan.whf
 * @version $Id: PortionSum.java, v 0.1 2018年06月07日 下午5:17 haofan.whf Exp $
 */
public class PortionSum {

    public static void main(String args[]){
        int[] array = new int[]{1,2,3,8};
        int targetSum = 5;
        PortionSum ps = new PortionSum();
        if(ps.dfs(0,0, array, targetSum)){
            System.out.println("YES");
        }else{
            System.out.println("NO");
        }
    }

    /**
     * 思路:通过深度搜索算法穷举该数组所有数字和的可能
     * @param deep
     * @param sum
     * @param array
     * @param targetSum
     * @return
     */
    private boolean dfs(int deep, int sum, int[] array, int targetSum){
        //当deep==数组长度时说明此时已经到底
        if(deep == array.length){
            return sum == targetSum;
        }

        /**
         * 深度未到底,此时两种情况
         * 1.sum不加下一个数字
         * 2.sum加下一个数字
         * 再分别递归,通过这种方式可以穷举出所有可能的和
         * 假设一次dfs的T(n)=O(1),因为总共有2^n次方种组成和的方式
         * 则该算法最终的时间复杂度是T(n)=O(2^n)
         */
        if(dfs(deep + 1, sum, array, targetSum)){
            return true;
        }

        //再判断+的一方
        if(dfs(deep + 1, sum + array[deep], array, targetSum)){
            return true;
        }

        return false;
    }

}

相关文章

  • 部分和问题

  • 【递归】部分和问题

    作者: 一字马胡 转载标志 【2017-12-10】 更新日志 问题描述 给定一个长度为n的整数数组a1,a2,...

  • java算法巩固训练day03

    多重部分和问题 poj 1742 Coins 二维数组实现 一维数组实现 poj 3280 Cheapest Pa...

  • DP问题

    多重部分和问题 模板题 代码 Holding Bin-Laden Captive!这道题的数组得开的很小心,太小了...

  • 关于部分和整体

    部分是不是 等同于 全体? 这是个显而易见的问题,你随手画个圈,圈里画点,可以画无数个,挑出一万个来 代表 这个圆...

  • 桥接模式

    桥接模式-定义 将抽象部分和实践部分分离,使他们都可以独立地进行变化。 桥接模式-解决问题 类层级爆炸问题 桥接模...

  • canvas系列教程09-canvas各种坑

    写了canvas系列教程的图表库部分和基础教程,收到了很多人的留言,针对大家问题的问题集中做一次填坑。 首先是编辑...

  • 25.vue中路由的配置

    包含底部导航部分和单页导航

  • 深度优先搜索(dfs)例题总结

    一、部分和问题 题目描述:给定整数序列a1,a2,.....,an,判断是否可以从中选出若干数,使他们的和恰好为k...

  • 喊话负面情绪-你也不过如此~

    对于此刻,二零一九年七月一日凌晨五点二十五分,我要做的,就是记录它。 跟少部分和我相似的问题青年(心理问题)一样,...

网友评论

      本文标题:部分和问题

      本文链接:https://www.haomeiwen.com/subject/zalnsftx.html