描述

在NBA季后赛期间,我们总是安排一支实力相当强的球队去和实力较弱的球队比赛,比如让排名第1的球队和第n的球队一起比赛,这是一个让比赛更有趣的好策略。现在给定n个球队,你需要以字符串的形式返回他们的最终赛程。

n 组球队以正整数的形式给出,从1到n,表示它们的初始排名。排名第1的是实力最强的球队,排名n最弱的球队。我们将使用括号() 和逗号, 来表示比赛团队的配对——括号()表示比赛的组而逗号,表示间隔。在每一轮的配对过程中,你都需要遵循这个策略,那就是让一个相当强的和一个相当弱的配对。

n的范围 [2, 2^12]。
保证输入的n可以转化为2 ^ k这种形式, k是一个正整数。

样例

1

输入: 2
输出: “(1,2)”

2

输入: 4
输出: “((1,4),(2,3))”
解释:
在第一轮中, 我们将球队1和4, 2和3组合在一起, 因为我们需要把强队和弱队放在一起.
然后我们有 (1,4) 和 (2,3)。
在第二轮中, (1,4) 和 (2,3) 的获胜者需要再次比赛以产生最终的胜利者, 所以你需要在最外面加上括号.
我们得到了最终答案((1,4),(2,3))

3

输入: 8
输出: “(((1,8),(4,5)),((2,7),(3,6)))”
解释:
第一轮: (1,8),(2,7),(3,6),(4,5)
第二轮: ((1,8),(4,5)),((2,7),(3,6))
第三轮: (((1,8),(4,5)),((2,7),(3,6)))

思路

每次都是把最左边和最右边的结合在一起比赛,循环完成

代码

123456789101112131415161718192021222324
class Solution {public:    /**     * @param n: a integer, denote the number of teams     * @return: a string     */    string findContestMatch(int n) {        // write your code here        vector<string> res;        for (int i = 1; i <= n; ++i)            res.push_back(to_string(i));

        while(res.size() != 1){            for (int i = 0; i < res.size(); i++) {                res[i] = "(" + res[i] + "," + res[n-i-1] + ")";                res.pop_back();            }            n /= 2;        }

        return res[0];

    }};
-------------end of filethanks for reading-------------

lintcode 输出赛程表相关推荐

  1. [lintcode]879. 输出赛程表

    链接:http://lintcode.com/zh-cn/problem/output-contest-matches/ 在NBA季后赛期间,我们总是安排一支实力相当强的球队去和实力较弱的球队比赛,比 ...

  2. UESTC 1607 大学生足球联赛 构造、蛇形安排赛程表

    大学生足球联赛 Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit   ...

  3. 嵌套的json ajax,通过jquery或javascript通过AJAX读取嵌套的JSON并输出到表中

    我真的很想有一个快速便捷的方法来遍历JSON中的多个记录,每个记录都有潜在的深层嵌套.我只想输出到表. 我不确定$ .each()或$ .ajax()成功的javascript方法需要通过functi ...

  4. 美联社将在以太坊区块链记录NCAA锦标赛篮球比分和赛程表

    美联社与Everipedia合作,将在以太坊区块链上发布疯狂三月(NCAA锦标赛)的篮球比分和赛程表.首场比赛将于美东时间今天下午6点开始. 文章链接:https://www.tuoluocaijin ...

  5. 世界杯2022赛程表

    2022卡塔尔世界杯已经开赛了,那么小伙伴们准备好了吗?更加热血沸腾的场面往往还在后面,小编也是非常期待着世界杯后面的比赛,但是很多小伙伴并不知道卡塔尔世界杯的赛程表,所以小编为大家带来了世界杯202 ...

  6. 赛程表 (递归调用, 非递归调用)

    赛程表 (递归调用, 非递归调用) package site.wanjiahao.gameTable;public class Main {// 为了方便调试,直接限定数值大小 需要改变也可以动态改变 ...

  7. 小技巧-不使用js制作高级足球比赛赛程表

    今天给大家介绍一种不使用js而用id来实现制作高级足球比赛赛程表(点击轮次即可显示出对应的轮次的赛程,后文会详细说明) 本文代码只展示核心代码 我们先用a标签写出轮次图的代码:(a里面的href使用i ...

  8. 乒乓球比赛赛程_2018国际乒联乒乓球重大赛事详细赛程表,看点爆点早知道

    原标题:2018国际乒联乒乓球重大赛事详细赛程表,看点爆点早知道 随着国际乒联总决赛的落幕,今年的国际大赛告一段落.好球的朋友们,2018年又有哪些国际大赛值得关注呢? 国乒有哪些重大记录等着打破?巡 ...

  9. 飘逸的python - 赛程表算法

    最近德甲英超西甲各大联赛重燃战火,想起之前写过的一段生成赛程表的代码,用python来写这类东西太舒服了. 这个算法叫做蛇环算法. 即,把所有球队排成一个环形(2列),左边对阵右边,第一支队伍不动,其 ...

最新文章

  1. 数据结构:回溯--解决八皇后问题
  2. hibernate常见错误及解决方法总结
  3. docker安装rocketmq你学会了吗
  4. 铃木uy125摩托车机油_UY125 新瑞梦UM125发布 济南铃木于湖南株洲吹响国IV集结号...
  5. You get a dream...you gotta protect it.
  6. this.$router.push如何刷新页面_小程序丨微信小程序如何实现页面下拉刷新
  7. Nginx+Keepalived(双机热备)搭建高可用负载均衡环境(HA)
  8. 代码大全旁边的一本书--感受《UNIX编程艺术》
  9. 上传文件到sftp服务器
  10. 量子计算机底层逻辑,高通AI研究院提出通过量子场论,可将深度神经网络映射到量子计算机...
  11. RealSense D435i深度相机介绍
  12. 典型的递归计算费氏数列
  13. 《Gpu Gems》《Gpu Pro》《Gpu Zen》系列读书笔记
  14. 【Python_绘图】堆积柱形图
  15. HDU 6318 Swaps and inversions
  16. 广州大学计算机学院谢冬青杀人案,广州大学6.29故意杀人案细节披露:谢冬青因怀疑被举报而杀人...
  17. 漫画告诉你:区块链到底是什么?
  18. eclipse网络连接代理设置
  19. 没有软件开发人员,可以办理CMMI3级吗?
  20. 什么!作为程序员你连英文版的官方文档都看不懂?

热门文章

  1. 性能测试线上培训班怎么选 3点教你在线选好培训班
  2. IOS APP的图标尺寸、启动画面尺寸、宣传画面尺寸
  3. Cyberdog——小米四足机器人测评
  4. 解决import cv2找不到指定模块问题
  5. HTMl账号密码登录跳转下一个页面问题/网页输入正确的账号面膜登录下一个界面/PHP网页禁止某个链接直链访问
  6. dql聚合函数_sql聚合函数有哪些
  7. Greenplum删除segment节点
  8. 试验设计——拉丁超立方抽样
  9. 微信公众号开发(一)--开发模式与编辑模式
  10. MAC电脑制作iPhone手机铃声