深度优先算法
/*** @author Think* 給定整數a1,a2,a3,a4…,判斷是否可以從中選出若干數,使他們的和恰好為K*/
public class 深度優先算法 {//n=4,a={1,2,4,7};k=13;public static int n=4;public static int [] a={1,2,4,7};public static int k=13;public static void main(String[] args) {
// findByFor(a,k);boolean boo=findByDeep(0,0);System.out.println("boo"+boo);}/*** @param a* @param k* 1、 1 2 、1 2 4 、 1 2 4 72 、2 4、 2 4 74 、4 7、7*通過for循環來寫的**/
public static void findByFor(int[] a,int k){int sum=0;for(int i=0;i<a.length;i++){for(int j=i;j<a.length;j++){
// System.out.println("a[j]"+a[j]);sum+=a[j];
// System.out.println("sum"+sum);if(sum==k){System.out.println("true");return;}}s
總結
- 上一篇: 二分查找找下标或者值
- 下一篇: 在n个火柴里面拿3根出来拼接成最大三角形