zoukankan      html  css  js  c++  java
  • 算法题:数字组合

    给出一个候选数字的集合 C 和目标数字 T,写一个函数找到 C 中所有的组合,使找出的数字和为 T。C 中的数字可以无限制重复被选取。

    注意事项:

    1、所有的数字(包括目标数字)均为正整数。

    2、元素组合(a1, a2, … , ak)必须是非降序(ie, a1 ≤  a2  ≤ … ≤  ak)。

    3、解集不能包含重复的组合。 

    格式:

    输入行每一行输入数组 C 和一个目标数字 T,最后输出所有满足条件的组合。

    样例输入

    C = [ 2,3,6,7 ]

    T = 7

     

    样例输出

    [ [ 7 ],[ 2,2,3 ] ]

    先将C从小到大排序,然后创建一个栈,然后向栈中由小到大填入数字,每填一次就将栈中的数字的和与目标T进行比较,如果和大于T,就抛出然后反向由大到小填入数字将和进行比较,直到有一个数X使得栈中的和等于T。 然后将X作为下一个T进行计算。 先记录一下想法。

  • 相关阅读:
    纸牌排序
    将年份转换成天干地支
    猜算式
    字符串的简单处理
    九宫格填数字
    扫雷
    嗨喽
    Input.GetAxis与Input.GetAxisRaw区别
    C#中(int)、int.Parse()、int.TryParse()和Convert.ToInt32()的区别
    开发游戏所需知识(知乎转载)
  • 原文地址:https://www.cnblogs.com/zhangzhuozheng/p/8074979.html
Copyright © 2011-2022 走看看