`

深度优先遍历------部分和问题

    博客分类:
  • java
 
阅读更多
代码如下:


package com.chapterOne.exercise;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by yangjianzhou on 2014/8/15 19:56.
 * TODO : 给定a1,a2,a3,......an,判断是够可以从中选取若干个数,使它们的和恰好为k
 */
public class PartSum {

    private static int n = 9;
    private static int target = 23;
    private static int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9};
    private static List<String> result = new ArrayList<String>();

    public static void main(String[] args) {
            System.out.println(dfs(0,0));
            for(String str : result){
                System.out.print(str + "---");
            }
    }

    private static boolean dfs(int i, int sum) {
        if (i == n) {
            return sum == target;
        }
        if (dfs(i + 1, sum)) {
            return true;
        }

        if (dfs(i + 1, sum + arr[i])) {
            result.add(String.valueOf(arr[i]));
            return true;
        }
        return false;
    }
}



运行结果如下:


true
9---8---6---
分享到:
评论

相关推荐

    图的深度、广度优先遍历(c语言)

    本程序方便的实现了图的深度、广度优先遍历。是数据结构中的一部分,现与大家分享

    leetcode和oj-Data-structure-and-Algorithms:一些有趣的练习

    深度优先搜索 -路径总和-路径总和 II -路径总和 III - 验证二叉搜索树-二叉树预序遍历-二叉树中序遍历-二叉树后序遍历-二叉搜索树中的中序后继- 二叉搜索树迭代器-Sum Root to Leaf Numbers 广度优先搜索 -二叉树级...

    c数据结构图的使用

    图的遍历是数据结构中较重要的任务,必须做好的一部分工作。

    数据结构C语言部分 自测卷解答

    1. 图有 邻接矩阵 、 邻接表 等存储结构,遍历图有 深度优先遍历 、 广度优先遍历 等方法。 2. 有向图G用邻接表矩阵存储,其第i行的所有元素之和等于顶点i的 出度 。 3. 如果n个顶点的图是一个环,则它有 n 棵生成...

    c语言数据结构部分实验代码

    c版的数据结构部分实验,包括哈夫曼编码;约瑟夫环;0/1背包问题回溯法和分枝限界法;有向图的深度优先遍历(邻接表).

    深度优先搜索算法—DFS

    该代码是DFS算法的实现,讲解部分可以查看我的博客

    C++工业软件开发课程设计基于QT的简易CAD系统、有向图和无向图自动生成系统源码.zip

    数据结构:需要使用要求的数据结构类将上述可视化控件中的元素对象组织起来,并调用其提供的接口实现如深度优先遍历等功能 C++工业软件开发设计基于QT的简CAD系统、有向图和无向图自动生成系统源码。 内含详细文档...

    数据结构(C++)有关练习题

    2、 为该类分别设计一个实现深度优先搜索和广度优先搜索的成员函数,并要输出搜索结果; 注: 1、为了让你设计的图类拥有数据,可以设计一个成员函数,用于构造你自己预先设计好的图; 2、要求的图如下,...

    example.zip

    几个常用的算法 图的深度优先遍历,迷宫问题、数组的部分和问题

    图的深度优先搜索和广度优先搜索

    数据结构试验中最难的一部分,此代码是我按照书中代码编写的,其中没有bug,方便同学借鉴!

    论文研究-利用局部区域约束的医学图像弹性配准.pdf

    该算法通过计算三角剖分图中每个数据点的变异系数将数据集分解成内部点和外部点两部分,然后从每一个未分类的内部点开始进行深度优先遍历,将相连的内部点以及和内部点相连的外部点作为一个聚类;最后从得到的聚类中...

    实验八 图的创建与遍历1

    1. 熟悉图的存储结构 2. 熟悉图的创建 3. 熟悉图的遍历 1. 定义图的存储结构,邻接矩阵和邻接表 2. 实现图的部分操作 3. 实现深度优先和广度优先遍

    数据结构,图部分代码整理

    包含的内容有:图,图的应用(最小生成树、关键路径、图的广度优先,深度优先遍历等)

    基于Java和Python的爬虫项目实战源码.zip

    深度优先遍历可能会在深度上过“深”而陷入“黑洞”; 重要的网页往往距离种子网页比较近,越深的网页的重要性越低; 万维网深度最多17层,但到达某面总存在一条很短的路径,宽度优先遍历会以最快的速度达到这个网页...

    回溯法求解经典问题带吗

    从根结点出发,按照深度优先策略遍历解空间树,搜索满足约束条件的解。在搜索至树中任一结点时,先判断该结点对应的部分解是否满足约束条件,或者是否超出目标函数的界,也就是判断该结点是否包含问题的(最优)解,...

    米哈游部分笔试题目-C语言方向.docx

    深度优先搜索算法以深度优先的方式遍历图,广度优先搜索算法以广度优先的方式遍历图。 最小堆数据结构:最小堆是一种完全二叉树,任意节点的值都小于或等于其子节点的值,实现快速的插入和删除操作。 拓扑排序算法...

    leetcode中国-LeetCode:力扣(leetcode-cn)题解,大部分使用C++实现,少量使用Golang实现

    深度优先遍历、广度优先遍历; 动态规划; 贪心算法; 回溯。 剑指 offer # 题目 难度 题解 面试题03 数组中重复的数字 easy 面试题04 二维数组中的查找 easy 面试题68-I 二叉搜索树的最近公共祖先 easy 面试题68-II...

    强连通分量(Strongly Connected Components)查找 原理熟悉,深度搜索,小白入手无压力

    findSCCs()函数使用深度优先搜索和Tarjan算法来进行递归遍历,并在找到一个强连通分量时将其添加到结果中。 这段代码中使用的示例图包含8个节点。你可以根据自己的需求修改图的大小和结构部分。运行该代码,你将会...

    C++和QT实现的交通路径规划系统

    本系统采用C++实现,界面部分采用的是QT设计,充分利用了迪杰斯特拉算法、佛洛依德算法、图的深度优先遍历算法等最短路径算法,数据结构采用了vector、优先队列、栈、邻接矩阵等等,对于想要学习数据结构和QT的同学...

    leetcode分类-leetcode_analysis:leetcode题解整理

    深度优先遍历 广度优先遍历 并查集 图 设计 拓扑排序 字典树 树状数组 线段树 二叉搜索树 递归 脑经急转弯 记忆化 队列 极小化极大 蓄水化抽样 几何 map 数组 哈希表 链表 数学 双指针 字符串 二分查找 分治算法 ...

Global site tag (gtag.js) - Google Analytics