随笔分类 - 剑指offer
摘要:题目链接:http://ac.jobdu.com/problem.php?pid=1372题意:最大连续子数组和并输出下表思路:利用动态规划的思想,以i结尾的最大连续子数组中的最大值就是结果。code: 1 #include 2 3 int main() 4 { 5 int n, k; ...
阅读全文
摘要:题目链接:http://ac.jobdu.com/problem.php?pid=1390思路:设用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形的方法数为Fn1、考虑最后一个小矩形,假设他是竖着的,那么前n-1个小矩形可以任意放,有Fn-1种放法2、考虑最后两个小矩形,假设他们都是横着放,那么前...
阅读全文
摘要:题目链接:http://ac.jobdu.com/problem.php?pid=1389思路:设青蛙跳上一个n级的台阶总共有Fn种跳法,且F0 = 1, F1 = 1,考虑跳上n级台阶的最后一步1、从0级台阶跳n步2、从1级台阶跳n-1步......n、从n-1级台阶跳一步可知递推公式为:Fn =...
阅读全文
摘要:题目链接:http://ac.jobdu.com/problem.php?pid=1388思路:设青蛙跳上一个n级的台阶总共有Fn种跳法,显然达到n级台阶最后一步有两种方式1、从第n-1级台阶跳一步2、从第n-2级台阶跳两步可得出递推公式:Fn = Fn-1 + Fn-2 斐波那契数列,只不过前两项...
阅读全文
摘要:题目链接:http://ac.jobdu.com/problem.php?pid=1387思路:下面是斐波那契额数列的数学公式利用上面的公式和矩阵快速幂可以在logn的时间复杂度内解决问题。注:具体矩阵快速幂的思想是怎么样的,可以自己搜索,网上资料很多。这题当然可以暴力,然后将所有的结果存下来,毕竟...
阅读全文
摘要:题目链接:http://ac.jobdu.com/problem.php?pid=1386思路:采用二分查找的思想。1、我们找到数组的中间元素2、如果中间元素大于或等于最左端的元素,中间元素就位于前面的递增子序列,最小元素位于中间元素后面,修改最左端元素的位置;3、如果中间元素小于或等于最右端的元素...
阅读全文
摘要:题目链接:http://ac.jobdu.com/problem.php?pid=1512思路:题目要求我们利用两个“先进后出”的栈实现一个“先进先出”的队列。插入时,将插入的元素放入stack1中。假设现在stack1中已经插入了若干元素,要进行删除操作。显然现在栈顶的元素是后插入的应该后出,栈底...
阅读全文
摘要:题目链接:http://ac.jobdu.com/problem.php?pid=1385思路:前序遍历结果的第一个数字就是根节点,找到根节点在中序遍历中的位置,则该位置左边的即为左子树的中序遍历的结果。显然我们很容易就可以得到左右子树的前序和中序遍历结果,我们可以使用递归来构建。小知识:preor...
阅读全文
摘要:题目链接:http://ac.jobdu.com/problem.php?pid=1511思路:修改链表的指向。使用三个指针head pRes pNext保存pRes = head保存head = pNext->next 修改pNext->next = pRes 更新pRes = pNext ...
阅读全文
摘要:题目链接:http://ac.jobdu.com/problem.php?pid=1510思路:要得到替换后的字符串,显然可以创建一个新的字符串,利用两个指针来来完成操作。假如要求在原字符串上进行替换,我们只能从后往前遍历原字符串,同时更新得到替换后的字符串。具体方法是,先遍历一遍字符串,记录下有多...
阅读全文
摘要:题目链接:http://ac.jobdu.com/problem.php?pid=1384思路:每次将要查找的数字t与二维数组右上角的元素比较。1、t比右上角的元素大,那么t肯定比该元素所在行的所有元素都大,直接删除该行,更新右上角元素。2、t比右上角的元素小,那么t肯定比该元素所在列的所有元素都小...
阅读全文

浙公网安备 33010602011771号