上一页 1 ··· 11 12 13 14 15
摘要: 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。 思路:an=an/2*an/2(n为偶数) = a(n-1)/2*a(n-1)/2*a(n为奇数) 根据这个公式,我们可以把这个当成一个递推公式,如an与a(n/2)的关系(an/2与a( 阅读全文
posted @ 2016-08-27 19:52 樱圃 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 知识点:把一个整数减去1之后再和原来的整数做位与运算,得到的结果相当于是把整数的二进制表示中最右边一个1变成0,可以将整数的二进制中最右边(不是0的位置)的1消掉。所以,有多少个1,循环就执行几次;反过来说,循环执行几次,就有几个1. 阅读全文
posted @ 2016-08-27 17:34 樱圃 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。 第一种思路是:从数组的第 阅读全文
posted @ 2016-08-27 17:29 樱圃 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 思路:一个栈如stack1始终是用来存储数据,当另外一个栈不为空时直接从stack2中弹出,若为空时,则将stack1中的值全部压入到stack2中,再将stack2中元素的值取出即可。 阅读全文
posted @ 2016-08-27 17:02 樱圃 阅读(80) 评论(0) 推荐(0) 编辑
摘要: 重建二叉树,由前序遍历和中序遍历创建二叉树。这个可以递归实现。先找到根节点,然后找到前序遍历的数组和中序遍历的数组,即可实现。 阅读全文
posted @ 2016-08-27 16:56 樱圃 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 建立最大的k个数,可以通过快速排序来实现,也可以通过堆排序来实现。我们来看堆排序的实现过程。 其中,也是有两种思路:第一种思路是:把数组里的所有的数建堆(O(nlogn)),然后交换k次,通过堆排序实现。(klogn) 时间复杂度是:O((n+k)logn) = O(nlogn) 第二种思路是:先用 阅读全文
posted @ 2016-08-27 16:34 樱圃 阅读(521) 评论(0) 推荐(0) 编辑
摘要: 堆排序的时间复杂度是:o(nlogn); 第一种思路:在所有的循环中,循环的第一次是建堆,剩余的是调整堆。 第二种思路是:先建堆,然后再调整堆。(建立一个调整堆函数 ) 阅读全文
posted @ 2016-08-27 16:02 樱圃 阅读(140) 评论(0) 推荐(0) 编辑
上一页 1 ··· 11 12 13 14 15