原文:求1~n整数中1出现的次数(《剑指offer》面试题43)

题意: 给定一个整数n,求 n这n个整数中十进制表示中 出现的次数。 思路: 方法 :最直观的是,对于 n中的每个整数,分别判断n中的 的个数,具体见 剑指offer 。这种方法的时间复杂度为O N logN ,当N比较大的时候,一般会超时。 方法 :这种类别的题目,如果直观求解不行的话,那么通常是进行找规律,转化成一个数学问题。这道题目在 编程之美 上有着比较详细的描述,下面就结合一个实例进行具 ...

2018-04-25 20:00 0 3597 推荐指数:

查看详情

offer面试题32----从1到n整数1出现次数

题目:输入一个整数n从1到nn整数的十进制表示1出现次数。例如输入12,从1到12这些整数包含1的数字有1,10,11和12,1一共出现了5次。 解法一:不考虑时间效率的解法(略) ps:我感觉是个程序员都能想到这第一种解法,时间复杂度O(nlogn)。这个方法没有什么意义 ...

Mon May 15 06:01:00 CST 2017 2 7004
【Java】 offer(43) 从1到n整数1出现次数

本文参考自《offer》一书,代码采用Java语言。 更多:《Offer》Java实现合集 题目   输入一个整数n从1到nn整数的十进制表示1出现次数。例如输入12,从1到12这些整数包含1 的数字有1,10,11和12,1一共出现了5次。 思路   如果是 ...

Tue Nov 13 00:20:00 CST 2018 0 993
offer-整数1出现次数(从1到n整数1出现次数

题目描述 求出1~13的整数1出现次数,并算出100~1300的整数1出现次数?为此他特别数了一下1~13包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出 ...

Sat Apr 21 23:51:00 CST 2018 0 1150
Offer面试题43n个骰子的点数

题目: 把n个骰子仍在地上,所有骰子朝上一面的点数之和为s。输入n,打印出s的所有可能的值出现的概率。 思路: s可能出现的值的范围为:n--6*n 1、全排列 回溯法枚举n个骰子(6面)的全排列,然后计算每一次排列所有值的和,并统计该和的出现次数,除以6^n(全排列的全部可能性 ...

Thu Jul 30 00:10:00 CST 2015 0 2862
offer面试题43 n个骰子的点数 (java)

引言:写这篇文章的初衷只是想做个笔记,因为这道题代码量有点大,有点抽象,而书上并没有详细的注释。为了加深印象和便于下次复习,做个记录。 原题:把n个骰子扔到地上,所有骰子朝上一面的点数之后为s. 输入n,打印出s所有可能的值出现的概率。(每个骰子6个面,点数从1到6) 解法一:基于递归,时间 ...

Wed May 24 06:30:00 CST 2017 1 3223
Offer面试题38:数字在排序数组中出现次数

题目: 统计一个数字在排序数组中出现次数。 思路: 1、顺序遍历 顺序扫描一遍数组,统计该数字出现次数。 时间复杂度:O(n) 2、二分查找 假设我们需要找的数字是k,那么就需要找到数组的第一个k和最后一个k出现的位置。 如何通过二分查找得到第一个k的位置呢? 取数组中间 ...

Mon Jul 27 02:16:00 CST 2015 0 2030
Offer面试题:32.数字在排序数组中出现次数

一、题目:数字在排序数组中出现次数 题目:统计一个数字在排序数组中出现次数。例如输入排序数组{1,2,3,3,3,3,4,5}和数字3,由于3在这个数组中出现了4次,因此输出4。 二、解题思路 2.1 直接运用二分查找   既然输入的数组是排序的,那么我们很自然地就能想到 ...

Sun Sep 20 19:04:00 CST 2015 0 6130
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM