今天上班摸鱼时,在微信群里看到了一个道友发的面试题
有道行高深的道友直接给出了答案
大腿一拍,直呼666
话说回来,这题咱们该咋做呢?其实我第一时间想到的,就是题目上那个提示:嵌套for循环,直接套他四层。
本来想在群里水一水:直接他个四层循环。但是想到群里两百来号人,咱们刚进群,不能轻举妄动,胡乱发言,给群友留下菜鸡的印象。而且,这题目肯定没这么简单。
在群友们都在积极发言时
我眉头紧锁,深思熟虑,果然,功夫不负有心人,经过半小时思考,终于找到了一个好解法,
又被我成功的装到了,然后分享思路,再谦虚一波,
以退为进,无招胜有招,直接佩戴上道友赋予的“大佬”称号,哈哈哈。
笑话是笑话,装也装,但的确是自己思考的,没有去网上找答案然后装,群中的发言也是实话
其实这题,大部分人第一想法也估计和我一样,都是四循环,因为提示也提示多层循环嵌套,具有引导欺骗性。但其实,四层循环的复杂度是很高的,数字稍微大一点就会很慢。然后我就思考,有没有效率更高的解法,思路就是群里我的的发言:
其实我第一时间想到的也是四层循环,但是这样太暴力了,我觉得出题者虽然提示了循环,但是肯定不是这样用的。然后我又想到了四层循环在遍历时,可以通过他们的和、差进行限制,但其实只要遍历层数每少,复杂度就没变。通过和差限制由此我想到了可以替换变量。我最开始想的是替换两个变量,两层循环,但实际上三个变量都可以替换