- 博客(12)
- 收藏
- 关注
原创 矩形覆盖(同斐波那契数列)
题目描述 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? int rectCover(int number) { if(number==0) return 0; if(number==1) return
2017-02-13 17:32:43
329
原创 变态跳台阶
题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 int jumpFloorII(int number) { if(number<=0) return 0; if(number==1) return 1; if(nu
2017-02-13 17:13:22
182
原创 跳台阶(同斐波那契数列)
题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 递归方法: int jumpFloor(int number) { if(number==1) return 1; if(number==2) return 2; if(number<=0)
2017-02-13 16:59:56
295
原创 旋转数组的最小值
题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。 思路: 类似二分查找,不断缩小查找范围: int minNumberInRotate
2017-02-13 12:28:20
203
原创 两个栈实现队列
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型 初始思路: 1,2都空:压:1;出:错 1有2空:压:1–>2,压1 出:1–>2,出2 1空2有:压1,出:2 1,2都有: 压1,出2class Solution { public: void push(int node) { if(stack2.size()==0){
2017-02-12 19:11:39
201
原创 重建二叉树(前序,中序序列建树)
题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。/** * Definition for binary tree * struct TreeNode { * int val; *
2017-02-12 17:04:28
681
原创 从尾到头打印链表
输入一个链表,从尾到头打印链表每个节点的值。 思路: 若能更改链表结构,翻转链表再打印出来;若不能,则可以使用栈,递归。 vector printListFromTailToHead(struct ListNode* head) { //if(head==0) return 0; vector result; while(head!=N
2017-02-10 22:18:51
159
原创 替换空格
请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。void replaceSpace(char *str,int length) { int space=0; int l=0; char *temp=str; while(*str!='
2017-02-10 20:40:50
189
原创 二维数组的查找
题目描述 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 思路:需要从右上角开始遍历,或者从左下角开始遍历,因为右上角往下运动是递增,往左运动是递减。左下角往上运动是递减,往右运动是递增。而其他两个点开始遍历是同增或同减的,无法唯一确定。 右上角开始遍历:class Solu
2017-02-10 19:07:36
175
原创 机器学习实战--KNN
KNN概要knn是最简单的分类算法,需要制定一个参数K。输入一个想要分类的点a,计算出a与数据集中最近的k个点,然后k个点中大多数属于的类就是输入点a属于的类。python codefrom numpy import * import operator def create_data_set(): group=array([[1.0,1.1],[1.0,1.0],[0,0],[0,0.1]]
2017-01-19 22:01:52
248
原创 斐波那契数列(非递归方法)
斐波那契数列1,1,2,3,5.。。。就是斐波那契数列的定义啦!就是第n项是前面第n-2,n-1项之和。 传统方法是使用递归方法求解。可是性能不够好,需要栈来保存函数调用的信息。非递归(迭代)方法空间换时间,在数组中保存整个数列 int Fibonacci(int n) { if(n==0) return 0; if(n==1) return 1;
2017-01-19 20:46:12
474
原创 循环有序数组查找
循环有序数组:形如{7,8,9,0,1,2,3,4,5,6}的数组。 如何快速的查找某一个元素是否在数组中呢? 追求比遍历更快的方法。。。类似二分查找的方法://n:array length,若存在目标元素,返回目标在数组的位置 int search(int A[], int n, int target) { if(n<=0) return -1; int lef
2017-01-19 15:54:06
460
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人