摘要: 题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 解题思路 依次从头开始遍历,比较大小,将小的结点插入新的链表,并将指针后移,直到两个链表遍历完成。 实现 Java / 链表结点定义 / public class ListNode { int v 阅读全文
posted @ 2016-08-14 10:54 峰扬迪 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 题目描述 输入一个链表,反转链表后,输出链表的所有元素。 解题思路 从头结点开始遍历,插入新的链表,每次在链表头插入结点。 实现 阅读全文
posted @ 2016-08-14 10:23 峰扬迪 阅读(78) 评论(0) 推荐(0) 编辑
摘要: 题目描述 输入一个链表,输出该链表中倒数第k个结点。 解题思路 利用两个指针,第一个指针先走k步,然后第二个指针从头开始走,当第一个指针到达最后时,第二个指针指向的结点就是倒数k个。如果第一个指针走到链表的尾部还没有到达k,那么返回 。 实现 Java / 链表结点的定义 / public clas 阅读全文
posted @ 2016-08-14 09:40 峰扬迪 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 解题思路 使用两个指针,一个指向当前第一个偶数,第二个指针则寻找该偶数后面第一个奇数,然后将奇数插入到第一个偶数的位 阅读全文
posted @ 2016-08-13 10:54 峰扬迪 阅读(94) 评论(0) 推荐(0) 编辑
摘要: 题目描述 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。 解题思路 1. 当exponent为0时,返回1,当exponent大于0,那么循环exponent次,每次对结果乘以base,最终返回结果。当exponent小于0,则循环ex 阅读全文
posted @ 2016-08-13 10:23 峰扬迪 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 题目描述 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 解题思路 1. 利用1移位,与数的每一位比较,当与的结果不为0,则说明当前位为1,count加1,否则为0,直到1移位后为0,最后返回count。 2. 如果n的二进制位为 ,那么n 1的二进制位为 ,那么这两个数相与得到 阅读全文
posted @ 2016-08-13 09:29 峰扬迪 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 题目描述 我们可以用2×1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2×1的小矩形无重叠地覆盖一个2×n的大矩形,总共有多少种方法? 解题思路 n个矩形可以横着放或者竖着放,则最后一块可以是横着放的或者,最后两个横着放 可以得到公式$$f(n) = f(n 1) + f(n 2)$$,则该题与 阅读全文
posted @ 2016-08-12 10:54 峰扬迪 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 解题思路 该题与上一题类似,只是每次可以跳的台阶数不同。根据题目意思,我们可以得到递归式: $$ f(n) = f(n 1) + f(n 2) + \ldots + f(1) + 阅读全文
posted @ 2016-08-12 10:30 峰扬迪 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 解题思路 这是一个动态规划的题。对于n个台阶,可以是n 1个台阶跳一步得到,也可以是n 2步台阶跳两步得到。因此有递归式 f(n) = f(n 1) + f(n 2); 因此可以使用两种方式递归和循 阅读全文
posted @ 2016-08-12 09:42 峰扬迪 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。 n= 0) return dp[n]; else{ return dp[n] = fibonacci(n 1, dp) + fibonacci(n 2, dp); } } } ``` 阅读全文
posted @ 2016-08-12 09:28 峰扬迪 阅读(132) 评论(0) 推荐(0) 编辑