本文参考自《剑指offer》一书,代码采用Java语言。 更多:《剑指Offer》Java实现合集 题目 求1+2+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。 思路 不能使用乘除 ...
题目描述: 求 ... n,要求不能使用乘除法 for while if else switch case等关键字及条件判断语句 A B:C 。 解题思路: 本题本身没有太多的实际意义,但是可以对程序员的发散思维能力进行考察,进而可以反映出对编程相关技术理解的深度。 对于本题,书中给出了利用构造函数 虚函数 函数指针 模板类型求解等思路,在这里,若使用java实现,有些方法却是不适用的,比如构造 ...
2019-05-14 11:59 0 455 推荐指数:
本文参考自《剑指offer》一书,代码采用Java语言。 更多:《剑指Offer》Java实现合集 题目 求1+2+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。 思路 不能使用乘除 ...
题意: 给定一个整数n,求1~n这n个整数中十进制表示中1出现的次数。 思路: 方法1:最直观的是,对于1~n中的每个整数,分别判断n中的1的个数,具体见《剑指offer》。这种方法的时间复杂度为O(N*logN),当N比较大的时候,一般会超时。 方法2:这种类别的题目 ...
本文参考自《剑指offer》一书,代码采用Java语言。 更多:《剑指Offer》Java实现合集 题目 在一个m×n的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于0)。你可以从棋盘的左上角开始拿格子里的礼物,并每次向左或者向下移动一格直到到达棋盘的右下角。给定一个 ...
本文参考自《剑指offer》一书,代码采用Java语言。 更多:《剑指Offer》Java实现合集 题目 把n个骰子扔在地上,所有骰子朝上一面的点数之和为s。输入n,打印出s的所有可能的值出现的概率。 思路 对于n个骰子,要计算出每种点数和的概率,我们知道投掷n个骰子 ...
本文参考自《剑指offer》一书,代码采用Java语言。 更多:《剑指Offer》Java实现合集 题目 输入数字n,按顺序打印出从1最大的n位十进制数。比如输入3,则打印出1、2、3一直到最大的3位数即999。 思路 陷阱:n过大时是大数问题,不能简单用int或者long ...
题目: 把n个骰子仍在地上,所有骰子朝上一面的点数之和为s。输入n,打印出s的所有可能的值出现的概率。 思路: s可能出现的值的范围为:n--6*n 1、全排列 回溯法枚举n个骰子(6面)的全排列,然后计算每一次排列所有值的和,并统计该和的出现的次数,除以6^n(全排列的全部可能性 ...
题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。 解法1 首先对这道题,我们可以通过找规律来解 一只青蛙可以跳上1级台阶,也可以跳上2两级台阶 当n = 1时,有1种跳法 当n = 2时,有2种跳法 当n ...
面试4题: 题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 解题代码一 ...