2017年2月22日
摘要: 合并两个排序的链表 题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 思路 1. 如果pHead1和pHead2中有一个为空,则result是另一个; 2. 如果pHead1的头结点值小于pHead2,那么result的头结点为pHead1的头结 阅读全文
posted @ 2017-02-22 19:56 echoVic 阅读(298) 评论(0) 推荐(0) 编辑
摘要: 反转链表 题目描述 输入一个链表,反转链表后,输出链表的所有元素。 思路 (本题链表默认无头结点) 1. pHead为当前结点,如果当前结点为空的话,直接返回; 2. pHead为当前结点,pre为当前结点的前一个结点,next为当前结点的下一个结点; 3. 需要完成的目标是将pre pHead n 阅读全文
posted @ 2017-02-22 19:56 echoVic 阅读(1059) 评论(0) 推荐(0) 编辑
摘要: 调整数组顺序使奇数位于偶数前面 题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 思路 1. 新建两个数组,分别用来存放奇数和偶数; 2. 将偶数的数组连接到奇数数组 阅读全文
posted @ 2017-02-22 19:55 echoVic 阅读(333) 评论(0) 推荐(0) 编辑
摘要: 链表中倒数第k个结点 题目描述 输入一个链表,输出该链表中倒数第k个结点。 思路 1. 两个指针,先让第一个指针和第二个指针都指向头结点,然后再让第一个指正走(k 1)步,到达第k个节点; 2. 然后两个指针同时往后移动,当第一个结点到达末尾的时候,第二个结点所在位置就是倒数第k个节点了。 3. 本 阅读全文
posted @ 2017-02-22 19:55 echoVic 阅读(720) 评论(0) 推荐(0) 编辑
摘要: 数值的整数次方 题目描述 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。 思路一 1. 考察指数的正负以及底数是否为零的几种情形; 2. 将指数转换为二进制形式,比如13=1101; 3. 例如求解10^13次方,可转换为(10^000 阅读全文
posted @ 2017-02-22 19:53 echoVic 阅读(444) 评论(0) 推荐(0) 编辑
摘要: 二进制中1的个数 题目描述 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 思路一 1. 用1和n进行位运算,结果为1则n的二进制最右边一位为1,否则为0; 2. 将n二进制形式右移1位,继续与1进行位运算; 3. 由于负数右移时最高位补1,因此不能采用算术右移,而使用不考虑符号位 阅读全文
posted @ 2017-02-22 19:53 echoVic 阅读(954) 评论(0) 推荐(0) 编辑
摘要: 矩形覆盖 题目描述 我们可以用(2\ 1)的小矩形横着或者竖着去覆盖更大的矩形。请问用n个(2\ 1)的小矩形无重叠地覆盖一个(2\ n)的大矩形,总共有多少种方法? 实现代码 javascript function jumpFloor(number) { if (number2,且为整数, f(n 阅读全文
posted @ 2017-02-22 19:52 echoVic 阅读(969) 评论(0) 推荐(0) 编辑
摘要: 变态跳台阶 题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 实现代码 javascript function jumpFloorII(number) { if(number === 0 ){ return 1; }else{ 阅读全文
posted @ 2017-02-22 19:51 echoVic 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 跳台阶 题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 实现代码 javascript function jumpFloor(number) { if (number2,且为整数, f(n)=f(n 1)+f(n 2) 阅读全文
posted @ 2017-02-22 19:47 echoVic 阅读(331) 评论(0) 推荐(0) 编辑
摘要: 斐波那契数列 题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。 n 阅读全文
posted @ 2017-02-22 19:45 echoVic 阅读(255) 评论(0) 推荐(0) 编辑
摘要: 旋转数组的最小数字 题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返 阅读全文
posted @ 2017-02-22 19:45 echoVic 阅读(582) 评论(0) 推荐(0) 编辑
摘要: 用两个栈实现队列 题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 实现代码 思路 入队:将元素进栈1; 出队:判断栈2是否为空,如果为空,则将栈1中所有元素pop,并push进栈2,栈2出栈; 如果不为空,栈2直接出栈。 相关知识 栈(stack) 又 阅读全文
posted @ 2017-02-22 19:44 echoVic 阅读(262) 评论(0) 推荐(0) 编辑
摘要: 重建二叉树 题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 实现代码 javascript / fu 阅读全文
posted @ 2017-02-22 19:44 echoVic 阅读(1168) 评论(0) 推荐(0) 编辑
摘要: 从尾到头打印链表 题目描述 输入一个链表,从尾到头打印链表每个节点的值。 实现代码 相关知识 链表 是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个 阅读全文
posted @ 2017-02-22 19:43 echoVic 阅读(273) 评论(0) 推荐(0) 编辑
摘要: 替换空格 题目描述 请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 实现代码 演示 阅读全文
posted @ 2017-02-22 19:42 echoVic 阅读(298) 评论(0) 推荐(0) 编辑
摘要: 二维数组中的查找 题目描述 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 实现代码 思路 矩阵是有序的,从左下角来看,向上数字递减,向右数字递增, 因此从左下角开始查找,当要查找 阅读全文
posted @ 2017-02-22 19:39 echoVic 阅读(601) 评论(0) 推荐(0) 编辑