专栏名称: 吴师兄学算法
和程序员小吴一起从初学者的角度学习算法,以动画的形式呈现解题的思路。每周四篇原创文章,期待你的鉴赏!
目录
相关文章推荐
青岛交通广播FM897  ·  冲上热搜!热播剧替身女演员遭车碾压?最新回应 ·  4 小时前  
南国早报  ·  刘德华方紧急发布! ·  17 小时前  
南国早报  ·  刘德华方紧急发布! ·  17 小时前  
中国基金报  ·  百亿私募巨头,最新动向曝光! ·  昨天  
中国基金报  ·  何立峰与美财长贝森特举行视频通话 ·  昨天  
中国基金报  ·  今夜,大跳水! ·  2 天前  
51好读  ›  专栏  ›  吴师兄学算法

我不是爽文男主,没有冰冷的 40 亿!

吴师兄学算法  · 公众号  ·  · 2024-04-19 11:10

正文

大家好,我是吴师兄。

昨天在抖音差不多全程看完了雷军的直播,虽然主题是“聊聊小米 SU7 开售这 20 天”,聊了很多小米汽车的信息,比如小米没有造越野车的计划、小米汽车定位民用车等等,但期间也聊了挺多八卦,比如:

  • 1、撞衫马斯克也是机缘巧合,科技休闲基本都这么穿;
  • 2、想过上架小米食堂的大麻花,但是小米没有食品销售许可证(哈哈哈哈);

等等。

我上一次完整的看完一场这么久的直播还是小米SU7的发布会,也是雷军主讲的。

虽然市场上对于小米的评价正面和负面都有,但在很多程序员眼中,雷军的形象比其他互联网大佬的形象正面的多。

或许雷军粉远远大于小米粉

在直播中,雷军辟谣了自己“爽文人生”的八卦传言。雷军表示, 自己并不是高考状元,也没有考 700 分。而且卡里也没有冰冷的 40 亿,希望大家帮忙辟谣。

雷军还表示:“我最失意的时候也不是卡里只有冰冷的 40 亿,我跟大家一样,我来自农村,靠勤奋努力和时代的机会一步一步走到今天。人生的成功不是爽文,要靠梦想、奋斗和贵人相助。看一看笑一笑就好,恳请大家帮我辟谣。”

不知道大家信不信,反正我是信了,毕竟温暖的 40 亿和冰冷的 40 亿确实也是不同的两个概念


继续今天的算法学习,来一个简单的算法题: 比赛中的配对次数

一、题目描述

给定一个整数 n,表示参加比赛的队伍数,每场比赛都会淘汰一支队伍,直到剩下最后一支队伍为止。每场比赛都是两支队伍之间的对决,因此需要进行若干场比赛才能产生最终的冠军。求出总共进行的比赛场次。

二、题目解析

算法思路:

  1. 初始化结果变量 ans 为 0。
  2. 当参加比赛的队伍数大于 1 时,进行循环:
  • 如果队伍数为偶数,则进行 n / 2 场比赛,同时剩下 n / 2 支队伍。
  • 如果队伍数为奇数,则进行 (n - 1) / 2 场比赛,同时剩下 (n - 1) / 2 + 1 支队伍。
  • 循环结束后,返回结果变量 ans。
  • 代码解析:

    • 初始化结果变量 ans 为 0。
    • 当参加比赛的队伍数大于 1 时,进行循环:
      • 如果队伍数为偶数,则进行 n / 2 场比赛,同时剩下 n / 2 支队伍。
      • 如果队伍数为奇数,则进行 (n - 1) / 2 场比赛,同时剩下 (n - 1) / 2 + 1 支队伍。
    • 循环结束后,返回结果变量 ans。

    算法正确性证明:

    • 在每一轮循环中,根据队伍数是偶数还是奇数,分别计算出本轮比赛的场次以及剩余的队伍数,然后将比赛场次累加到结果变量中。
    • 当队伍数为 1 时,循环结束,返回结果变量 ans,即为总共进行的比赛场次。

    算法的优势:

    • 算法简单直观,通过循环迭代计算每一轮比赛的场次,时间复杂度较低。
    • 不需要额外的数据结构或复杂的操作,适用于较大规模的比赛场次计算。

    算法的适用性:

    • 适用于解决统计总共进行的比赛场次的问题,特别适用于比赛场次按照每轮对阵双方成对进行的情况。

    总结:本算法通过简单的循环迭代,计算出每一轮比赛的场次并累加到结果变量中,解决了统计比赛场次的问题。算法简洁高效,适用于该类问题的求解。

    三、参考代码

    class Solution:
        def numberOfMatches(self, n: int) -> int:

            # 结果变量
            ans = 0

            # 不断的配对比赛,直到剩下一支队伍为止
            while n > 1:

                # 1、偶数支队伍
                if n % 2






    请到「今天看啥」查看全文