摘要:
题目描述 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 有可能引起死循环解法: 每次判断最右端是不是1【与 & 1即可】,是就cnt++,然后右移一位,直到num为0,结束; 但是这只对正数有用,而负数右移是左端补充1,这样导致num最终成为 0xFFFFFFFF,从而右移成了死 阅读全文
摘要:
题目描述 给你一根长度为n的绳子,请把绳子剪成m段(m、n都是整数,n>1并且m>1),每段绳子的长度记为k[0],k[1],...,k[m]。请问k[0]xk[1]x...xk[m]可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。 阅读全文
摘要:
题目描述 地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+ 阅读全文
摘要:
题目描述 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。 例如 a b c e s f c s a d e e 矩阵 阅读全文
摘要:
题目描述 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 题解: 使用递归或者动态规划,明显,递归没有动态规划优 1 class Solution01 { 2 public: 3 int rectCover(int n 阅读全文
摘要:
题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 题解: 纯找规律题: 1 class Solution { 2 public: 3 int jumpFloorII(int number) { 4 if (number < 0) 阅读全文
摘要:
题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。 把一个数组最开始 阅读全文
摘要:
题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。 题解: 说俗一点,就是找规律; 不不,首先,我们分析一下,青蛙第一次可以跳一步,则其跳剩下的n-1个台阶的方法数为:f(n-1); 也可以跳两步,则其跳剩下n-2个台阶的 阅读全文
摘要:
题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。 n<=39 有多种方法,简单的循环、递归、动态规划; 1 class Solution01 { 2 public: 3 int Fibonacci(int n) { 4 int a = 阅读全文
摘要:
题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 题解: 有两个栈,stack1和stack2 push只在stack1上操作,pop只在stack2上操作 当stack2不为空时,直接从stack2栈顶弹出 当stack2为空时,将stack1的数据全 阅读全文