摘要: 题目描述 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。 //快速幂 class Solution { public: double Power(double base, int exponent) { long long p = ab 阅读全文
posted @ 2019-05-11 23:35 unique_ptr 阅读(84) 评论(0) 推荐(0) 编辑
摘要: 题目描述 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 class Solution { public: int NumberOf1(int n) { int count=0; for(int i=0;i<32;i++){ if(n>>i&1) count++; } return 阅读全文
posted @ 2019-05-11 23:28 unique_ptr 阅读(77) 评论(0) 推荐(0) 编辑
摘要: 题目描述 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 同斐波那契数列解法 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 同斐波那契 阅读全文
posted @ 2019-05-11 23:16 unique_ptr 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 关于本题,前提是n个台阶会有一次n阶的跳法。分析如下: f(1) 阅读全文
posted @ 2019-05-11 23:10 unique_ptr 阅读(99) 评论(0) 推荐(0) 编辑
摘要: 题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。 思路和第七题完全一样,斐波那契数列。 循环相加效率比递归法更高(重复计算太多) 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法( 阅读全文
posted @ 2019-05-11 22:58 unique_ptr 阅读(64) 评论(0) 推荐(0) 编辑
摘要: 题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。 n<=39 //递归,大量重复计算 class Solution { public: int Fibonacci(int n) { if(n == 0) return 0; if(n = 阅读全文
posted @ 2019-05-11 22:53 unique_ptr 阅读(71) 评论(0) 推荐(0) 编辑
摘要: 题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。 //直接遍历 阅读全文
posted @ 2019-05-11 22:45 unique_ptr 阅读(82) 评论(0) 推荐(0) 编辑
摘要: 题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 1 //一个栈作为队尾(入队),另一个栈作为队头(出队) 2 //入队时,直接入栈1;出队时,先判断栈2是否empty,为空就将栈1入 3 //栈2,再出栈 4 class Solution 5 { 6 阅读全文
posted @ 2019-05-11 22:23 unique_ptr 阅读(89) 评论(0) 推荐(0) 编辑
摘要: 题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 1 /** 2 * Definition for b 阅读全文
posted @ 2019-05-11 22:16 unique_ptr 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 题目描述 请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 1 //新建一个string,得到结果后strcpy到原str 2 class Solution { 3 public: 4 vo 阅读全文
posted @ 2019-05-11 21:56 unique_ptr 阅读(88) 评论(0) 推荐(0) 编辑
摘要: 解释:两个鸡蛋一样,只有在达到某个楼层高度时,才会摔碎。可以假设这个摔碎临界楼层是N。 1、最笨的方法——只用一个鸡蛋遍历——N次尝试 一个鸡蛋遍历那就是从一楼顶开始,逐层尝试,如果摔不碎那就继续往上层尝试,直到N层摔碎了。这样就尝试了N次,而且浪费了一个鸡蛋的使用。 2、二分查找——两个鸡蛋,鸡蛋 阅读全文
posted @ 2019-05-11 17:53 unique_ptr 阅读(1966) 评论(1) 推荐(0) 编辑
摘要: 在linux 没有实现epoll事件驱动机制之前,我们一般选择用select或者poll等IO多路复用的方法来实现并发服务程序。在大数据、高并发、集群等一些名词唱得火热之年代,select和poll的用武之地越来越有限,风头已经被epoll占尽。 本文便来介绍epoll的实现机制,并附带讲解一下se 阅读全文
posted @ 2019-05-11 17:16 unique_ptr 阅读(5016) 评论(0) 推荐(5) 编辑
摘要: <! flowchart 箭头图标 勿删 栈是什么?栈有什么作用? 首先,栈 (stack) 是一种串列形式的 数据结构。这种数据结构的特点是 后入先出 (LIFO, Last In First Out),数据只能在串列的一端 (称为:栈顶 top) 进行 推入 (push) 和 弹出 (pop) 阅读全文
posted @ 2019-05-11 14:16 unique_ptr 阅读(286) 评论(0) 推荐(0) 编辑