玄魂工作室秘书 [玄魂工作室]
昨天發的算法有一处情况没考虑到比如加一后有进位,导致又出现重复数字的情况修正后今天重新发一次。
比如输入99那B应该是101 因为100有两個连续相当的0。
基本思路:最坏的办法 加1一直加1 直到找到有不重复的数为止
面试:这道题要是作为面试题的话,要跟面试官确认好数A嘚范围,比如是否有小数是否有负数等等。在这里我们把题确定为正数
如果输入的数本身不存在重复,则加1;如果存在重复比如我們输入的是,那如果要找比大的最小没有重复的数最先重复的两位数是11,那么如果想让11不重复并且比大那么应该让第二位的1加1 变成。嘫后为了让数字最小则把2后面的数字都变成0,变成;然后在从2后开始找不重复数00重复,变成01;所以结果是这里需要注意:如果变化後又进位的情况,还需要重新处理一遍比如199,第一遍处理后变成了200200还是有重复,则需要重新处理
题目:输入一个数A,找到大于A的一個最小数B且B中不存在连续相当的两个数字。
比如输入99那B应该是101 因为100有两个连续相当的0
基本思路:最坏的办法 加1一直加1 直到找到有不重複的数为止
优化的思路 如果输入是1099 加1后变成1100,那么他下一个不重复的数如果一直加1效率就会比较低这是可以优化的点
这道题要是作为面試提的话,要跟面试官确认好数A的范围,比如是否有小数
是否有负数等等。在这里我们把题确定为正数
获取num个10相乘的数字为了让重複的数字加1,比如num=4 则返回10000
判断data中是否有连续重复数字
更多算法内容欢迎关注 订阅号“白话算法: