剑指offer12

/**
 * 给定一个double类型的浮点数base和int类型的整数exponent。
 * 求base的exponent次方。
 * @author user
 * 
 */
/*
 * 使用Math类提供的API解决
 */
public static double Power(double base,int exponent) {
return Math.pow(base, exponent);
}

/*
	 * 使用递归的方式求解
	 */
	public static double Power2(double base,int exponent) {
		if(base == 0 && exponent < 0) {
			throw new RuntimeException("分母不能为零啊");
		} else if(exponent == 0) {
			return 1;
		} else if(exponent < 0) {
			return 1 / base * Power2(base, exponent + 1);
		} else {
			return base * Power2(base, exponent - 1);
		}
	}

原文地址:http://blog.51cto.com/12222886/2060999

时间: 2024-10-10 03:12:13

剑指offer12的相关文章

剑指offer12:求解double类型的浮点数base和int类型的整数exponent的次方。 保证base和exponent不同时为0

1. 题目描述 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方.保证base和exponent不同时为0. 2. 思路和方法 分析: 由于指数是int 类型,所以要区分整数还是负数或者0. 2.1 直接连续累乘 会造成多次相乘运算. 2.2 快速幂运算 写出指数的二进制表达,例如13表达为二进制1101. 通过&1和>>1来逐位读取1101,为1时将该位代表的乘数累乘到最终结果. 举例:10^1101 = 10^0001*1

【剑指offer】Q38:数字在数组中出现的次数

与折半查找是同一个模式,不同的是,在这里不在查找某个确定的值,而是查找确定值所在的上下边界. def getBounder(data, k, start, end, low_bound = False): if end < start : return -1 while start <= end: mid = ( start + end ) >> 1 if data[ mid ] > k: end = mid - 1 elif data[ mid ] < k: star

【剑指offer】树的子结构

转载请注明出处:http://blog.csdn.net/ns_code/article/details/25907685 剑指offer第18题,九度OJ上测试通过! 题目描述: 输入两颗二叉树A,B,判断B是不是A的子结构. 输入: 输入可能包含多个测试样例,输入以EOF结束.对于每个测试案例,输入的第一行一个整数n,m(1<=n<=1000,1<=m<=1000):n代表将要输入的二叉树A的节点个数(节点从1开始计数),m代表将要输入的二叉树B的节点个数(节点从1开始计数).

【剑指offer】二叉树的镜像

转载请注明出处:http://blog.csdn.net/ns_code/article/details/25915971 题目描述: 输入一个二叉树,输出其镜像. 输入: 输入可能包含多个测试样例,输入以EOF结束.对于每个测试案例,输入的第一行为一个整数n(0<=n<=1000,n代表将要输入的二叉树节点的个数(节点从1开始编号).接下来一行有n个数字,代表第i个二叉树节点的元素的值.接下来有n行,每行有一个字母Ci.Ci='d'表示第i个节点有两子孩子,紧接着是左孩子编号和右孩子编号.C

剑指offer 复杂链表的复制

题目描述: 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head.(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空) 思路:要进行深拷贝,需要每次都new一个节点出来,利用unordered_map, 2.3 138. Copy List with Random Pointer https://leetcode.com/problems/copy-list-with-random-poi

剑指offer30题

定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数. 看到这个 题目,第一想法就是,我要不定义一个变量,指向当前栈中最小的值,每次入栈,就和最小值进行比较,如果比最小值小,则最小值指向该值,否则最小值依旧. 但很快遇到问题,如果在出栈时,最小值出来后,比最小值小的值呢?无法查到了啊! 于是思路出来了,用一个辅助栈,第一次将入栈的值放入,接下来每一次,和栈顶的值进行比较,如果比它小,则将该值放入,否则把栈顶的值再次放入. 此题参考剑指offer书的思路. 下面附代码. packa

【剑指offer】数组中仅仅出现一次的数字(1)

转载请注明出处:http://blog.csdn.net/ns_code/article/details/27649027 题目描写叙述: 一个整型数组里除了两个数字之外,其它的数字都出现了两次.请敲代码找出这两个仅仅出现一次的数字. 输入: 每一个測试案例包括两行: 第一行包括一个整数n,表示数组大小.2<=n <= 10^6. 第二行包括n个整数,表示数组元素,元素均为int. 输出: 相应每一个測试案例.输出数组中仅仅出现一次的两个数.输出的数字从小到大的顺序. 例子输入: 8 2 4

牛客网上的剑指offer题目

题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 题目:请实现一个函数,将一个字符串中的空格替换成"%20" 两种方法实现:输入一个链表,从尾到头打印链表每个节点的值 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. 剑指offer 斐波那契数列 一只青蛙一次可以跳上1级台阶,也可以跳上2级--它也可以跳上n级.求该青蛙跳上一个

剑指Offer——如何做好自我介绍

剑指Offer--如何做好自我介绍 前言 自我特点+经历梳理 ??各位老师好,我叫某某某,研究生三年级,就读于某某大学信息科学与工程学院软件工程专业.主要使用的开发语言是Java,熟悉基本数据结构和基本算法实现:熟悉MySQL数据库:掌握Linux基本操作命令:所参与的主要项目有"立马送药","鲜花礼品网","基于Android实现的购彩系统"和"我看看"购物分享Android APP.其中,"立马送药"的