矩形覆盖 描述 我们可以用2 1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 这个题目有点类似青蛙跳台阶,同时也是斐波那契数列。 当target<3时分别有target种排列方法。对于>=3时有两种情况 第一次摆放一块 2*1 的小矩阵,则摆放方法总共为f(target …
给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]。
一只青蛙一次可以跳上1级台阶,也可以跳上2级。
求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
操作给定的二叉树,将其变换为源二叉树的镜像。
输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。
从尾到头打印链表 题目描述 输入一个链表,按链表从尾到头的顺序返回一个ArrayList。 一般来说,遇到这种问题,递归是最容易想到的。同时也会有一个非递归的版本,本题可以有两个思路。 1.栈 利用栈的先进后出特性,正好符合本题需求。如下 Stack <Integer> stack = new Stack <Integer>…
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。
请实现一个函数,将一个字符串中的每个空格替换成“%20”。
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。