122>算法笔试模拟题精解之“神奇数字在哪里”算法笔试模拟题精解之“神奇数字在哪里”贡献者 | 洪浩原简介:注意读题,本题要求的数字中“只”含有 1,2,3 三个数字。题目描述等级:中等知识点:搜索、递归查看题目:神奇数字在哪里请计算出 1-n(1<=n<=1000000000) 中有多少个数字中,只存在 '1','2','3' 这三个数字,且这三个数字至少都要出现 1 次。输入一个数 n。输出 1-n 中符合要求的数字的个数。示例 1输入:232输出:4算法笔试模拟题精解之“神奇数字在哪里” <123解题方法:注意读题,本题要求的数字中“只”含有 1,2,3 三个数字方法 1:暴力搜索对 本 题, 最 简 单 的 想 法 是 针 对 每 个 数 字, 转 为 字 符 串, 然 后 判 断 数 字 中 是否 只 同 时 包 含 1,2,3 三 个 字 符。 鉴 于 本 题 输 入 是 int,n 最 大 可 以 达 到 2^31-1 ≈ 2*10^9,一个这么长的 for 循环,时间复杂度还是比较高的,不是最优解法。时间复杂度:O(n)方法 2:深度优先搜索寻找这种神奇数字,暴力法可以
目录
156
0
收起右侧 展开右侧
程序员面试宝典 > 算法笔试模拟题精解之“神奇数字在哪里”
  • 读书笔记
    我的笔记
    暂无相关笔记,快来写一篇吧!
点击浏览下一章>>