- 博客(73)
- 资源 (4)
- 问答 (32)
- 收藏
- 关注
原创 [动态规划]最长公共子序列
动态规划的本质动态规划的实质就是:记忆化搜索。对于要用动态规划进行解决的问题的特点:问题具有最优子结构性质:如果问题的最优解包含的子问题的解也是最优的,就称该问题具有最优子结构。问题具有子问题重叠性质:再用递归进行自顶向下计算时,每次产生的子问题并不都是新的,可能会存在子问题重复计算,动态规划就可以对每个子问题只计算一次,将结果保存起来,以便高效利用。再来看一个问题: 最长公共子序列 POJ1
2016-07-20 01:06:44
633
原创 [动态规划]数字三角形、最长上升子序列
POJ 1163 数字三角形7 3 8 8 1 0 2 7 4 4 4 5 2 6 5在上面的数字三角形中寻找一条从顶部到底边的路径, 使得路径上所经过的数字之和最大。路径上的每一步都 只能往左下或右下走。只需要求出这个最大和即可,不 必给出具体路径。 三角形的行数大于1小于等于100 数字为 0 - 99解法:这道题用递归做是解法很显然的:递归 设f(i,j) 为三角形上从
2016-07-10 16:49:39
705
原创 [搜索]广搜的两道题
抓住那头牛(POJ3278) 广度优先搜索算法如下:(用QUEUE) (1) 把初始节点S0放入Open表中; (2) 如果Open表为空,则问题无解,失败 退出; (3) 把Open表的第一个节点取出放入 Closed表,并记该节点为n; (4) 考察节点n是否为目标节点。若是, 则得到问题的解,成功退出; (5) 若节点n不可扩展,则转第(2)步; (6)
2016-07-04 10:49:46
610
原创 Python快速处理数据的Broadcasting
标准安装的Python中用列表(list)保存一组值,可以用来当作数组使用,不过由于列表的元素可以是任何对象,因此列表中所保存的是对象的指针。这样为了保存一个简单的[1,2,3],需要有3个指针和三个整数对象。对于数值运算来说这种结构显然比较浪费内存和CPU计算时间。此外Python还提供了一个array模块,array对象和列表不同,它直接保存数值,和C语言的一维数组比较类似。但是由于它不支持多维
2016-06-30 20:56:13
2534
原创 [搜索]八数码问题
搜索:高级枚举 有顺序有策略地枚举状态空间中的节点,寻找问题 的解 状态空间 由所有状态构成的状态树经典八数码问题: 有一个3*3的棋盘,其中有0-8共9个数字,0表示空 格,其他的数字可以和0交换位置。求由初始状态 到达目标状态的步数最少的解?8 2 3 1 4 6 5 7 0 —> 1 2 3 4 5 6 7 8 0解
2016-06-15 23:36:16
1480
原创 5. Longest Palindromic Substring
Given a string S, find the longest palindromic substring in S. You may assume that the maximum length of S is 1000, and there exists one unique longest palindromic substring. 原题这题开始想用递归,没写出来,看了题解,原来可以
2016-06-15 23:13:15
364
原创 3.Longest Substring Without Repeating Characters
由于不能出现重复的,所以用map记录字符值和它出现的位置,就可以很容易判断出字符上次出现的位置。int lengthOfLongestSubstring(string s){ map<char,int> m; int lastRepeated=-1,max_length=0; for(int i=0;i<s.size();i++){ //如果该字符是重复的,则更新它最后一次出现的
2016-06-10 00:33:55
305
原创 [递归]poj1664 放苹果
Description把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。 Input第一行是测试数据的数目t(0 <= t <= 20)。以下每行均包含二个整数M和N,以空格分开。1<=M,N<=10。 Output对输入的每组数据M和N,用一行输出相应的K。 Sample Input1 7 3 Sampl
2016-06-03 15:14:05
375
原创 [递归]Simple prefix compression
原题地址:Simple prefix compression主要的知识点是递归,但是貌似这题不用递归也可以。不过还是复习下递归的知识点吧。 递归是指某个函数直接或间接的调用自身。问题的求解过程就 是划分成许多相同性质的子问题的求解,而小问题的求解过程 可以很容易的求出,这些子问题的解就构成里原问题的解。递归解题的总体思想:将待求解问题的解看作输入变量x的函数f(x)通过寻找函数g,使得f(
2016-06-02 22:55:41
703
原创 函数指针浅谈
1. 基本概念首先,应该明确:程序运行期间,每个函数都会占用一段连续的内存空间。 函数名就是该函数所占内存区域的起始地址(也 称“入口地址”) 将函数的入口地址赋给一个指针变量,使该指 针变量指向该函数。然后通过指针变量就可以 调用这个函数。这种指向函数的指针变量称为 “函数指针”。函数指针定义的一般形式为: 类型名 (* 指针变量名)(参数类型1, 参数类型2,…); “类型名
2016-05-15 20:59:34
445
原创 数据结构学习笔记(十)-图的最小生成树与拓扑排序
一、最小生成树首先应该理解最小生成树的定义: 包含图的所有顶点,V-1条边 没有回路 边的权重和最小那么实际问题中用到最小生成树是什么时候呢?很多人都觉得学习算法没用,在实际生活工作中根本就用不上,其实并不是用不上,只是你根本没有想到要去用而已!使用了算法后你就会发现事情原来可以这么简单高效! 实际中如需要使用最少的电线给一栋房子安装电路。就可以用最小生成树解决。1. Prim算
2016-05-02 11:59:09
3283
原创 2. Add Two Numbers
You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linke
2016-04-28 20:29:11
359
原创 数据结构学习笔记(九)-各大排序算法
一、简单排序1. 冒泡排序其思想是每次比较相邻的两个元素,如果后一个比它小则交换两个元素的顺序,直到将最大的数冒出来(假设是从小到大排)。那么我们需要进行N-1趟排序,每次最坏的情况交换N-1次,则时间复杂度为二次。2. 插入排序对于喜欢打扑克的人都知道,抓牌后我们需要将其插入到合适的位置,就需要将其与当前手中的牌一一 比较,直到找到那个比它小的数(假如是从小到大排)。那么对于一个数组int A[N
2016-04-28 14:40:00
1956
原创 《C++ Primer》习题
类的设计#include <algorithm>#include <cctype>#include <cmath>#include <fstream>#include <iostream>#include <iterator>#include <string>#include <vector>using namespace std;//------------------------
2016-04-26 19:59:12
479
转载 最大似然估计(MLE)和最大后验概率估计(MAP)
最大似然估计:最大似然估计提供了一种给定观察数据来评估模型参数的方法,即:“模型已定,参数未知”。简单而言,假设我们要统计全国人口的身高,首先假设这个身高服从服从正态分布,但是该分布的均值与方差未知。我们没有人力与物力去统计全国每个人的身高,但是可以通过采样,获取部分人的身高,然后通过最大似然估计来获取上述假设中的正态分布的均值与方差。最大似然估计中采样需满足一个很重要的假设,就是
2016-04-18 15:56:07
579
转载 C++ STL泛型编程——在ACM中的运用
学习过C++的朋友们应该对STL和泛型编程这两个名词不会陌生。两者之间的关系不言而喻,泛型编程的思想促使了STL的诞生,而STL则很好地体现了泛型编程这种思想。这次想简单说一下STL在ACM中的一些应用。我们知道,在ACM竞赛中,经常需要用到数组、字符串、队列、堆栈、链表等数据结构和排序、搜索等算法,以提高程序的时间、空间运行效率。然而如果这些数据结构总是需要手工来编写,那无疑会是一件很麻烦的工作
2016-04-16 14:58:08
533
原创 数据结构学习笔记(八)--最短路径
最短路径问题分好几种。无权图的单源最短路径:直接用BFS即可有权图的单源最短路径:Dijkstra算法多源最短路径:Floyd算法(适合于稠密图)有负权值的最短路径
2016-04-16 14:49:48
513
原创 数据结构学习笔记(七)--图
图的存储方式一般分为邻接矩阵与邻接链表。矩阵操作简单,但稀疏图时采用链表效率更高。图的遍历:DFS(用递归实现) BFS(用队列实现,类似于树的层序遍历!)注意什么时候使用DFS什么时候使用BFS更好? **如果估计目标顶点离开起始顶点不会太远,那么选择广度优先遍历是比较合适的,因为广度优先是一种由近及远的搜索策略; 如果估计目标顶点与起始顶点没有太大的关系,那么选择深度优先遍历是比较合适的
2016-04-13 22:29:40
679
原创 数据结构学习笔记(六)堆-优先队列
基础知识什么是堆?为什么要建立堆这种数据结构?堆的实际用处是?(堆排序)应该采用哪种存储结构来存储堆? 因为要使堆的插入、删除等各种基本操作效率最高,所以采用完全二叉树的形式存储堆。完全二叉树的一些重要性质:若父节点序号为i,则左儿子序号为2i,右儿子序号为2i+1。若某儿子序号为i,则其父节点序号为[i/2](取整)。怎样插入元素到堆中呢? 假如是最大堆,删除最大元素即删除根节点,那么就
2016-04-09 21:23:46
334
原创 数据结构学习笔记(五)
习题:平衡二叉树。 Root of AVL Tree 总结注意弄清楚:为什么要对二叉搜索树进行平衡操作平衡二叉树是怎样旋转的。基本旋转操作有哪些。/*确定平衡二叉树的根节点*/#include <cstdio>#include <cstdlib>#include <iostream>using namespace std;//定义平衡二叉树typedef int DataType;
2016-04-08 01:19:20
358
原创 数据结构学习笔记(四)
本篇主要是两个关于二叉搜索树的练习。 题目来源:浙江大学PATtest先上代码:/*判断是否是同一棵二叉搜索树:对于各种输入不同的序列,判断它们是否构成一样的二叉搜索树*/#include <cstdio>#include <cstdlib>#include <stack>using namespace std;//二叉树的表示typedef int DataType;typedef
2016-04-07 22:49:19
502
原创 数据结构学习笔记(三)二叉树的非递归遍历
树的三种遍历方法很熟悉,常见的是用递归解决:先序:根左右中序:左根右后序:左右根仔细回想一下树的三种遍历算法,可以发现原来遍历过程中经过节点的路线一样,只是访问时机不同!如上图,可以发现遍历过程中每个节点都有三次经过它的时机,如B点,首先经过它是先序遍历时,其次是中序遍历时,最后是后序遍历时那么。对于一个节点,第一次碰到就访问则是先序,第二次碰到访问是中序,第三次碰到访问是后序。我们可以根据
2016-03-27 10:19:26
573
原创 数据结构学习笔记(二)多项式加法与乘法
之前自己看书学链表、栈、队列,觉得比较难懂,还是得自己动手实践下。这次就是实现一个多项式的加法和乘法运算,主要是要求熟练链表的各种操作。 看看程序的大体框架是:设计数据结构:多项式的表示。可以用数组和链表。数组需事先确定数组大小,链表则对动态操作比较有利。读多项式:这里需要设计一个attach函数,是用来将新的结点插入链尾的。加法实现:多项式相加其实就是比较指数,相同则合并同类项,不同则直接
2016-03-26 23:39:12
2941
1
原创 数据结构学习笔记(一)
本系列是网易云课堂浙大数据结构课程的一些笔记。课程配套了一些编程练习,以加深理解与编程能力。提高编程的方法无他,唯多看,多练,多思考。 首先介绍了一些基本的算法概念,分析。 然后给出了一个求最大子序列和的例子,给出了四种时间复杂度不同算法实现,可以体会到算法的有效设计对程序效率的影响是很大的,特别是数据集很大的时候。 #include <iostream>#include <stack>#
2016-03-26 20:24:35
381
原创 二叉树的各种运算及遍历实现
//二叉查找树的链式表示及算法实现//by zoe#include <cstdio>#include <cstdlib>#include <iostream>#include <stack>using namespace std;typedef struct node* position;typedef int DataType;struct node{ DataType data;
2016-03-12 11:14:47
797
原创 阶段计划
(wordpress博客down掉了,只能暂时在这里写一些东西了)为了治好拖延症只能在这里立下一个大写的flag了。不知不觉已经大三了,马上就要选择人生的下一阶段何去何从了。anyway跳出光电坑,CS大法好。算法与数据结构是基础,系统和网络知识从框架掌控,由细节构建框架,coding能力还不够,机器学习算法不深入,深度学习拖了很久了。那就,立一下目标吧。 - 所有经典算法数据结构动手敲一遍,刷O
2016-03-11 01:46:31
375
原创 数组循环右移
描述:将一个长度为 n 的数组 A 的元素循环右移(ROR, Rotate Right)k 位,比如数组 1, 2, 3, 4, 5 循环右移 3 位之后就变成 3, 4, 5, 1, 2。 要求:只能用一个元素大小的附加存储,元素移动或交换次数为O(n)。开始时自己想的算法就是最简单原始的一种: 每次将数组右移一位,循环k次:void function(int *A,int n,int k){
2016-03-03 16:54:04
1243
原创 贪心算法之完美字符串
#include#include#include#includeusing namespace std;char s[10001];int b[10001];int cmp(int x,int y){ return x>y;}int main(){ int sum,n,m,k; while(scanf("%s",s)!=EOF) { int i,l=strl
2016-02-23 21:40:23
1291
原创 PAT1008.数组元素循环右移
如果需要考虑程序移动数据的次数尽量少,要如何设计移动的方法? 假设原数组序列为abcd1234,要求变换成的数组序列为1234abcd,即循环右移了4位。比较之后,不难看出,其中有两段的顺序是不变的:1234和abcd,可把这两段看成两个整体。右移K位的过程就是把数组的两部分交换一下。变换的过程通过以下步骤完成:逆序排列abcd:abcd1234 → dcba1234;逆序排列1234:dcb
2016-02-08 20:58:57
429
原创 PAT1006.换个格式输出
本题主要考察对于百位数各个位上数字的求法。#include <iostream>using namespace std;int main(){ int a,b,c,i,k; cin>>k; a=k/100;//百位 b=k%100/10;//十位 c=k%10;//个位 for(i=0;i<a;i++) cout<<'B'; for(i=0;i<b;i++)
2016-02-05 17:35:58
284
原创 PAT1003.我要通过!
题解: 规则1和2是基本要求 规则3:aPbTc ==> aPbATca,那么可以逆推 aPbATca 到 aPbTc,直到 a’PATa’ 这种形式,说明源字符串是符合要求的 详细说明:aPbTc,则b中每次减少一个A,c中减少a字符串,直到cPATd形式,若c==d,则说明满足规则2,即原串符合要求 。#include <iostream> #include <string>
2016-02-05 14:19:03
378
原创 PAT1002.写出这个数
本题主要涉及到基本的字符串、字符串数组操作。 n%10取低位(余数),n/10取高(去除最低位)。#include <stdio.h>#include <string.h>int main(){ char c[101]; char pinyin[][9]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"}; int a[
2016-02-05 11:54:15
2963
1
原创 Linux上编译opencv程序
在linux上编译opencv的方法大致有两种,一种是直接按照c/c++程序那样在命令行编译,只是在编译时要包含进opencv动态链接库.另一种是用Cmake的方法.命令行:zoegreen@zoegreen-Lenovo-IdeaPad-Y470:~/robot$ g++ test.cpp -o test `pkg-config --cflags --libs opencv`这里我们用到了一个工具
2016-01-26 15:09:25
7364
1
原创 [机器学习实战]k-近邻算法
- 用到的一些重要的python函数operator.itemgetter函数 operator模块提供的itemgetter函数用于获取对象的哪些维的数据,参数为一些序号(即需要获取的数据在对象中的序号) 要注意,operator.itemgetter函数获取的不是值,而是定义了一个函数,通过该函数作用到对象上才能获取值。sorted函数 Python内置的排序函数sorted可以对list
2015-11-27 11:57:57
584
原创 单层卷积神经网络的实现
这两周主要把DeepLearnToolbox-master里的源码研读了下,大致框架基本理解,但是细节实现处还不是很懂。经过与同学的讨论,基本理解了。然后尝试实现一个卷积神经网络,参考了UFLDL教程与习题代码和网上的一些资源,尝试写了个一层的网络,即输入层+卷积层+池化层+全连接层。调试了很久,还有点问题。 由于在 MNIST 数字识别中,有 个不同的类别。所以采用softmax回归。其代价函
2015-11-26 21:09:07
3112
原创 Linux基础学习(二)-用户及文件权限管理
Linux 是一个实现多用户登录的操作系统,比如“zoe”和“loe”可以同时登陆同一台主机,他们共享同一台主机的资源。但他们有各自的用户空间,用于存放各自的文件。但实际上他们的文件都是放在同一个物理磁盘上的甚至同一个逻辑分区或者目录里,但是由于 Linux 的 用户管理 和 权限机制 ,不同用户不可以轻易地查看、修改彼此的文件。1.查看用户请打开终端,输入命令:$ who am i或者$ who
2015-11-08 16:26:06
708
原创 Linux基础学习(一)
1.Terminal(终端)通常在使用 Linux 时,我们并不是直接与系统打交道,而是通过一个叫做 Shell 的中间程序来完成的,在图形界面下为了实现让我们在一个窗口中完成接受用户输入和显示输出,Linux 系统还提供了一个叫做终端模拟器的程序(Terminal),下面几个比较常见的终端模拟器,例如 gnome-terminal,kconsole,xterm,rxvt,kvt,nxterm 和
2015-11-08 15:39:28
393
原创 卷积神经网络学习笔记(一)
CNNs学习笔记一 基本原理1) 反向传导算法 在机器学习中,给定了测试数据集后经过一个模型后得到的一个实际输出数据集,为了刻画实际值与理想值之间的关系,我们定义了一个代价函数,有时也叫损失函数: 下图为神经网络的一般模型: 前向传导即根据每个神经元的权值来推导出下一个神经元的权值。对于一个神经网络,给出输入(x,y)后我们首先要进行“前向传导”运算,计算出网络中所有的激活函数值,包括最
2015-11-05 22:02:43
5103
转载 非科班出身的人学习编程不负责任指南
原文地址:http://segmentfault.com/a/1190000003873192**为何要写这样一篇文章**来我们这个实验室里读研的学生可能自从来到这里的第一天就觉得自己的命运很苦逼。他们读本科时主修的是机械设计、制造以及自动化之类的专业,毕业时的简历上也顶多是写写擅长 MS Word、PowerPoint、UGNX、AutoCAD 之类的应用软件。他们有限的学习生涯里,怎么也不会想到
2015-11-01 18:01:41
2120
ssh登陆“Permission denied ”是怎么回事?
2016-07-19
C++程序编译遇到这种提示是什么意思?
2016-07-10
poj一道基础广搜题,求解答!
2016-07-02
mac 上使用gdb出现问题?
2016-05-28
eclipse 下编译opencv程序出现问题?
2016-05-28
[求助]mac下装gdb,制作好了证书,但是运行的时候出现下面的错误是怎么回事?
2016-05-17
这段代码哪里出问题了??
2016-03-03
这段代码哪里出问题了?
2016-03-02
请教一下这段代码哪里出错了?
2016-02-29
使用caffe时遇到问题,求解答!
2016-01-21
qt上编译opencv程序出错
2015-12-29
Linux下编译opencv的cvDrawChessboardCorners函数出错
2015-12-26
[求解!]打印链表元素主程序出错
2015-12-04
[求解答!]mac os的终端里怎么编译opencv程序呢?
2015-12-03
怎么写一个LESS到CSS的编译器?
2015-10-20
mac中终端运行python问题
2015-09-23
ubuntu chrome secure shell远程登录出错?
2015-08-29
python-opencv程序运行时遇到一个问题,求助
2015-08-26
xcode编译opencv出错,求指点
2015-08-19
求大神帮忙解决!Mac下在xcode里编译opencv出现下面错误请问怎么回事?
2015-08-18
Mac下在xcode里编译opencv出现下面错误请问怎么回事?
2015-08-18
Error in android studio avd - linux
2015-07-29
android studio 怎么使用opencv?
2015-07-29
快速排序这段代码有问题吗?为什么排不好序呢?
2015-07-28
归并排序这段代码有错吗?
2015-07-28
Linux下安装Android Studio出错,求大神解答!
2015-07-22
在树莓派上做深度图像处理?
2015-07-21
Linux下安装Android Studio出错,求大神解答!
2015-07-20
Linux上搭建安卓开发环境出错
2015-07-20
新装的linux软件更新器也不能打开?
2015-05-10
VS里编译OpnCV出现如下多错误
2015-03-16
TA创建的收藏夹 TA关注的收藏夹
TA关注的人