深度搜索( 数子排序)

计算纸牌在全部使用且不重复使用的情况下,有几种排序方式

// 纸牌数组(三张纸牌,未使用标记为0, 可以根据数组中的位置,理解为1,2,3)
self.cardArr = [@[@"0",@"0",@"0"] mutableCopy];
// 盒子数组 (最开始是空盒子)
self.boxArr = [@[@"",@"",@""] mutableCopy];

- (void)depthSearchWithNumber:(NSInteger)current {
    // 当前盒子大于纸牌数的时候结束(数组索引从0开始,索引等同于个数的时候就是超出了)
    if (current == self.cardArr.count) {
        // 遍历输入当前盒子中的纸牌数
        for (NSInteger i = 0; i < self.count; i ++) {
            // 输出这组数子(由于从0开始的, 加1等同于从1开始)
            NSLog(@"%d",[self.boxArr[i] intValue] + 1);
        }
        return;
    }
    // 遍历所有纸牌
    for (NSInteger i = 0; i < self.cardArr.count;  i++) {
        // 判断当前纸牌是否使用过
        if ([self.cardArr[i] isEqualToString:@"0"]) {
            // 把未使用的纸牌放进当前盒子中
            self.boxArr[current] = [NSString stringWithFormat:@"%ld",i];
            // 把放进盒子中的纸牌标记为已使用过
            self.cardArr[i] = @"1";
            // 进行下一个盒子的操作
            [self depthSearchWithNumber:current + 1];
            // 把刚刚使用过
            self.cardArr[i] = @"0";
        }
    }
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,912评论 1 32
  • 排序的基本概念 在计算机程序开发过程中,经常需要一组数据元素(或记录)按某个关键字进行排序,排序完成的序列可用于快...
    Jack921阅读 5,374评论 1 4
  • 狂风携雨敲窗 苍天大地茫茫 一误时空错旅 仿佛旧梦铿锵 此时夕阳换夜 去年晨换夕阳 夏日出行多变 坐等晚车入厢
    涛涛不绝82阅读 1,585评论 0 2
  • 如果有些人有这个悟性,那他看什么事情,接触什么信息,可能跟别人看到的东西都不一样。 正所谓,对同一件事情,看到的层...
    很明显不是阅读 1,391评论 0 0
  • 爱是那样浪漫美好的字眼,但就像所有宝贵的东西不容易得到一样,多少人哪怕爱的死去活来的,到最后得到的可能是满满的怨恨...
    自歌自舞自徘徊阅读 1,850评论 0 1

友情链接更多精彩内容