《啊哈!算法》第四章代码上

上一章的最后一个问题实在太变态了?相信大家都和我一样,十分好奇第四章对于它的优化解法了!
那么,事不宜迟,我们来看看吧~
稍微花费了一点时间才理解了深度优先遍历——从最里层开始说吧,到了最里层,或者以三个盒子放扑克牌123为例,到了第四个盒子,就可以打印前面的扑克牌序列了,打印完return(出口!很重要)。回到了第三个盒子,我们把3从盒子里拿出来,但是,按照循环,3之后没有数了,那么循环结束,return。好了,现在回到第二个盒子,我们把2从盒子里拿出来,按照循环到了3,这时3处于空闲状态,可以放进去,然后到第三个盒子,发现只有一张2,那么,按照顺序,就出现了132序列。然后,一样的发现return了这种情况后第二个盒子的循环也到达极限了,我们必须回到第一个盒子,按照循环到2,后面按照循环顺序可以有序列13、31。对于我来说,必须要解释到这种程度才能听懂?希望帮到和我一样有困惑的小伙伴。
4.1 等式填空

int[] a=new int[11];
    int[] book=new int[]{0,0,0,0,0,0,0,0,0,0};
    public void doAtBox(int boxindex){
        if(boxindex==10){
            if((a[1]*100+a[2]*10+a[3]+a[4]*100+a[5]*10+a[6]==
                    a[7]*100+a[8]*10+a[9])) {
                int a1 = a[1] * 100 + a[2] * 10 + a[3];
                int a2 = a[4] * 100 + a[5] * 10 + a[6];
                int sum = a[7] * 100 + a[8] * 10 + a[9];
                System.out.println(a1 + "+" + a2 + "=" + sum);
            }
            return;
        }
        for(int i=1;i<=9;i++){
            if(book[i]==0){
                a[boxindex]=i;
                book[i]=1;
                doAtBox(boxindex+1);
                book[i]=0;
            }
        }
        return;
    }

在看第二节的时候,我有个无关算法的疑惑:难道不是小哈是男孩子,小哼是女孩子吗,为什么小哈头上有蝴蝶结啊喂!而且小哼莫名男友力爆棚!(而且学习力也爆棚,无聊就研究算法,姐姐输了TAT)咳咳,好了,回到正题——
4.2 迷宫算法

非常抱歉,又双叕异常啦,我好菜…凌晨两点打不起精神了,明天再写吧~晚安

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值