分享一个简单有趣的面试题

今天上班摸鱼时,在微信群里看到了一个道友发的面试题
在这里插入图片描述

有道行高深的道友直接给出了答案
在这里插入图片描述

大腿一拍,直呼666

话说回来,这题咱们该咋做呢?其实我第一时间想到的,就是题目上那个提示:嵌套for循环,直接套他四层。

本来想在群里水一水:直接他个四层循环。但是想到群里两百来号人,咱们刚进群,不能轻举妄动,胡乱发言,给群友留下菜鸡的印象。而且,这题目肯定没这么简单。

在群友们都在积极发言时
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
我眉头紧锁,深思熟虑,果然,功夫不负有心人,经过半小时思考,终于找到了一个好解法,
在这里插入图片描述

在这里插入图片描述

又被我成功的装到了,然后分享思路,再谦虚一波,
在这里插入图片描述

以退为进,无招胜有招,直接佩戴上道友赋予的“大佬”称号,哈哈哈。

笑话是笑话,装也装,但的确是自己思考的,没有去网上找答案然后装,群中的发言也是实话

其实这题,大部分人第一想法也估计和我一样,都是四循环,因为提示也提示多层循环嵌套,具有引导欺骗性。但其实,四层循环的复杂度是很高的,数字稍微大一点就会很慢。然后我就思考,有没有效率更高的解法,思路就是群里我的的发言:

其实我第一时间想到的也是四层循环,但是这样太暴力了,我觉得出题者虽然提示了循环,但是肯定不是这样用的。然后我又想到了四层循环在遍历时,可以通过他们的和、差进行限制,但其实只要遍历层数每少,复杂度就没变。通过和差限制由此我想到了可以替换变量。我最开始想的是替换两个变量,两层循环,但实际上三个变量都可以替换

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值