自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 收藏
  • 关注

原创 数组中和为0的最长子序列 三种变形

数组中和为0的最长子序列 三种变形

2017-10-13 21:34:57 811

原创 单例模式 懒汉实现和饿汉实验

懒汉:故名思义,不到万不得已就不会去实例化类,也就是说在第一次用到类实例的时候才会去实例化,所以上边的经典方法被归为懒汉实现;饿汉:饿了肯定要饥不择食。所以在单例类定义的时候就进行实例化。一个类只能实例化一个对象,所以一定要用静态class singleton{protected:    //构造函数声明为private或protect防止被外部函数

2017-09-12 18:44:37 449

原创 c++ sort函数的使用

1 string#include <iostream>#include <string>#include <algorithm>using namespace std;int main(){ string s; cin>>s; cout<<s<<endl; sort(s.begin(),s.end()); cout<<s<<endl; retu

2017-08-18 17:53:55 293

原创 树的先序中序后序层次遍历(非递归)

1 树的先序中序后序遍历,都是树的深度优先遍历的特例。一般我们所写的深度优先遍历用的都是树的先序 2 树的层次遍历,就是树的广度优先遍历//先序遍历非递归算法 1 也是深度优先遍历写法 void pre(BinaryTree * root) { if (root == NULL) { return;

2017-08-08 19:51:34 350

原创 最长公共子串 最长公共子序列 最长递增子序列

待续

2017-08-02 19:49:11 199

转载 深入:最大子序列和(多种算法)

问题描述:给定一个整数序列,a0, a1, a2, …… , an(项可以为负数),求其中最大的子序列和。如果所有整数都是负数,那么最大子序列和为0;例如:对于序列-2, 11, -4, 13, -5, –2。 所求的最大子序列和为20(从11到13,即从a1到a3)。用于测试下面代码的的主函数代码如下:(注意要更改调用的函数名)[cpp] view

2017-08-02 12:19:56 333

转载 动态规划——递归转动态规划三部曲

动态规划相信大家都知道,动态规划算法也是新手在刚接触算法设计时很苦恼的问题,有时候觉得难以理解,但是真正理解之后,就会觉得动态规划其实并没有想象中那么难。网上也有很多关于讲解动态规划的文章,大多都是叙述概念,讲解原理,让人觉得晦涩难懂,即使一时间看懂了,发现当自己做题的时候又会觉得无所适从。我觉得,理解算法最重要的还是在于练习,只有通过自己练习,才可以更快地提升。话不多说,接下来,下面我就通过一个

2017-08-02 10:51:47 6461 3

原创 git 整理

1 版本回退问题 Git reset –hard HEAD^ (表示上一版本 可以用commit_id 代替) 回退之后是找不到之后的新版本的 git log –pretty=oneline 查看提交历史 有版本号 git reflog 可以查看已经被删除的版本号(本来是查看历史命令的)2 工作区和暂存区 电脑里的文件夹就是工作区 第一步是用git add把文件添加进去,

2017-06-16 15:47:23 261

转载 VIM 命令模式和输入模式

vi编辑器vi是UNIX和类UNIX环境下的可用于创建文件的屏幕编辑器。vi有两种工作模式:命令模式和文本输入模式。启动vi需要输入vi,按[Spacebar]键并输入文件名后回车。切换模式键vi从命令模式切换到文本输入模式。每个键以不同方式使vi进入文本输入模式。按[ESC]键使vi从文本输入模式回到命令模式。表1列出了vi从命令模式切换到文本输入模式的命令键及其

2016-12-22 16:07:29 567

原创 七大比较排序总结

排序分为比较排序和非比较排序,这里先介绍比较排序 插入排序:直接插入排序,希尔排序 交换排序:冒泡排序,快速排序 选择排序:直接选择排序, 堆排序 最后是归并排序。 基于比较的排序都是遵循“决策树模型”,而在决策树模型中,我们能证明给予比较的排序算法最坏情况下的运行时间为Ω(nlgn),证明的思路是因为将n个序列构成的决策树的叶子节点个数至少有n!,因此高度至少为nlgn。(算法导论)非比

2016-12-21 16:31:04 539

转载 设计模式总结

设计模式总结      从七月份开始一直到九月底才看完设计模式,在这个过程中我不敢说我已经掌握了那本书里面的内容,或者说1/5,没能力说也没有资格说。但是结果不重要,重要的是这个过程我的收获!主要包括如下几个方面:      1、认识了这么多设计模式。刚刚接触java没多久就在学长那里听过设计模式的大名,但是由于能力有限,一直不敢触碰。而今有幸将其都认识了。     

2016-12-08 16:59:45 319

原创 C++ static关键字的作用总结

1、什么是static?       static 是C++中很常用的修饰符,它被用来控制变量的存储方式和可见性。        2、为什么要引入static?       函数内部定义的变量,在程序执行到它的定义处时,编译器为它在栈上分配空间,大家知道,函数在栈上分配的空间在此函数执行结束时会释放掉,这样就产生了一个问题: 如果想将函数中此变量的值保存至下一次调用时,如何实现? 最容

2016-11-14 18:13:54 634

原创 关于虚函数的整理(待续)

http://www.cnblogs.com/malecrab/p/5572730.html

2016-11-07 15:29:50 210

原创 cpp 关键字的总结

cpp 的一些关键字怎么用static 当我们在类外部定义static时,无需重复指定保留字,该保留字只出现在类定义体内部的声明处friend 关键字friend 只能出现在类定义的内部explicit 只能用于类内部的构造函数声明上(类定义体外不在重复)

2016-11-03 10:59:27 475

原创 c++ 函数形参关于const和引用

1 非引用的 (const形参 或者非const形参),实参既可以是const 也可以是非const   a 如果函数使用非引用的非const形参,既可以传递const实参,也可以传递非const实参。因为初始化复制了初始化式的值,所以可以const对象初始化非const对象  b如果函数使用非引用的const形参,既可以传递const实参,也可以传递非const实参。因为实参仍然以副

2016-10-26 10:31:39 1739

转载 二叉树的深度优先遍历(栈)和广度优先遍历(队列)

深度优先遍历(栈,先压右节点,再压左节点)也就深入的遍历,沿着每一个分支直到走到最后,然后才返回来遍历剩余的节点。二叉树不同于图,图需要标记节点是否已经访问过,因为可能会存在环,而二叉树不会出现环,所以不需要标记。那么,我们只需要一个栈空间,来压栈就好了。因为深度优先遍历,遍历了根节点后,就开始遍历左子树,所以右子树肯定最后遍历。我们利用栈的性质,先将右子树压栈,然后在对左子树压栈。此时,

2016-10-14 11:17:12 11441

转载 两个栈实现一个队列的三种方式思路

已知下面Stack类及其3个方法Push、Pop和 Count,请用2个Stack实现Queue类的入队(Enqueue)出队(Dequeue)方法。 class Stack{…public:         void Push(int x); // Push an element in stack;         int Pop();  // Pop an elem

2016-09-28 17:08:19 1318

原创 系统设计的高频面试题都有哪些?

如何设计数据库系统,具体地,可以是设计 taobao/Facebook 或是任何公司的员工数据库等;如何设计用户系统,具体地,可以是 Netflix/Youtube 的用户系统等;如何设计支付系统,具体地,可以是 alipay 等;如何设计爬虫系统,具体地,可以是 baidu 的搜索引擎等;如何设计短网址系统,具体地,可以是新浪的短网址等;如何设计“秒杀”系统,具体地,可以是淘宝双十一系统等;如何

2016-09-28 16:21:16 1061

转载 算法导论九大排序总结

转载来源:http://blog.csdn.net/xiazdong本文首先介绍了基于比较模型的排序算法,即最坏复杂度都在Ω(nlgn)的排序算法,接着介绍了一些线性时间排序算法,这些排序算法虽然都在线性时间,但是都是在对输入数组有一定的约束的前提下才行。这篇文章参看了《算法导论》第2、3、4、6、7、8章而总结。算法的由来:9世纪波斯数学家提出的:“al-Khow

2016-09-22 20:40:06 2797

转载 初学者如何查阅自然语言处理(NLP)领域学术资料

转自:http://blog.sina.com.cn/s/blog_574a437f01019poo.html昨天实验室一位刚进组的同学发邮件来问我如何查找学术论文,这让我想起自己刚读研究生时茫然四顾的情形:看着学长们高谈阔论领域动态,却不知如何入门。经过研究生几年的耳濡目染,现在终于能自信地知道去哪儿了解最新科研动态了。我想这可能是初学者们共通的困惑,与其只告诉一个人知道,不

2016-09-18 11:43:06 448

原创 三种算法求解一个数组的子数组最大和

这是一道考的烂的不能再烂的题目,但是依然有很多公司乐于将这样的题目作为笔试或面试题,足见其经典。一个整数数组中的元素有正有负,在该数组中找出一个连续子数组,要求该子数组中各元素的和最大,这个子数组便被称作最大子数组。比如数组{2,4,-7,5,2,-1,2,-4,3}的最大子数组为{5,2,-1,2},最大子数组的和为5+2-1+2=8。下面按照时间复杂度逐步优化的顺序依次给出这三种算法。暴力求解法

2016-09-13 17:46:34 930

转载 一文读懂机器学习,大数据/自然语言处理/算法全有了

在本篇文章中,我将对机器学习做个概要的介绍。本文的目的是能让即便完全不了解机器学习的人也能了解机器学习,并且上手相关的实践。这篇文档也算是EasyPR开发的番外篇,从这里开始,必须对机器学习了解才能进一步介绍EasyPR的内核。当然,本文也面对一般读者,不会对阅读有相关的前提要求。在进入正题前,我想读者心中可能会有一个疑惑:机器学习有什么重要性,以至于要阅读完这篇非常长的文章呢?我

2016-09-09 16:12:20 1069

原创 冒泡排序 选择排序和插入排序

冒泡排序: 思路:将相邻的两个数比较,将较小的数调到前头;有n个数就要进行n-1趟比较,第一次比较中要进行n-1次两两比较,在第j趟比较中,要进行n-j次两两比较。 依次比较相邻的两个数,将小数放在前面,大数放在后面。即首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。

2016-09-07 20:24:07 380

原创 算法导论2.3-7(未排序数组) 和 剑指offer面试题41(排序数组)

题目要求: 算法导论2.3-7:给出一个运行时间为O(nlgn)的算法,使之能在给定一个由n个整数组成的集合S和另个整数x时,判断S中是否存在有两个其和等于x的元素 剑指offer:输入一个递增排序的数组和一个数字S,在数组中查找两个数,使它们的和恰好为S。 如果有多对数字的和为S,输出其中任意一对即可 算法导论的解题思路:都给数组先进行归并排序,事件爱你复杂度为O(nlgn),后续做法两题一致

2016-09-07 17:32:42 508

转载 栈 堆 全局区(静态区) 文字区

一、预备知识―程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)― 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) ― 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、

2016-09-06 10:04:17 271

原创 git&github 整理

Git详解之一 Git起步:http://www.open-open.com/lib/view/open1328069609436.html本章介绍开始使用 Git 前的相关知识。我们会先了解一些版本控制工具的历史背景,然后试着让 Git 在你的系统上跑起来,直到最后配置好,可以正常开始开发工作。读完本章,你就会明白为什么 Git 会如此流行,为什么你应该立即开始使用它。

2016-09-05 16:10:26 277

转载 Git的深入理解与GitHub托管服务的使用 (原文:http://www.cnblogs.com/cocowool/archive/2012/02/17/2356125.html)

源代码管理系统(SCM)与版本控制版本控制是一种记录若干文件内容变化,以便将来查阅特定版本修订情况的系统。本地版本控制系统许多人习惯用复制整个项目目录的方式来保存不同的版本,或许还会改名加上备份时间进行区别。这么做的唯一好处就是简单,坏处也不少:有时候会混淆所在的工作目录,一旦弄错了文件数据就没办法撤销恢复。为了解决这个问题,人们很久以前就开发了许多本地版本控制

2016-09-05 11:31:16 520

转载 数据库 数据仓库 概念模型 逻辑模型 物理模型

概念模型就是在了解了用户的需求,用户的业务领域工作情况以后,经过分析和总结,提炼出来的用以描述用户业务需求的一些概念的东西。如销售业务中的“客户”和“定单”,还有就是“商品”,“业务员”。  用USE   CASE来描述就是:“业务员”与“客户”就购买“商品”之事签定下“定单”。逻辑模型就是要将概念模型具体化。要实现概念模型所描述的东西,需要那些具体的功能和处理那些具体的信息。这就到了需求

2016-05-31 11:26:44 8943

转载 递归和迭代

辩证看递归和迭代所谓递归,简而言之就是应用程序自身调用自身,以实现层次数据结构的查询和访问。递归的使用可以使代码更简洁清晰,可读性更好(对于初学者到不见得),但由于递归需要系统堆栈,所以空间消耗要比非递归代码要大很多,而且,如果递归深度太大,可能系统资源会不够用。往往有这样的观点:能不用递归就不用递归,递归都可以用迭代来代替。诚然,在理论上,递归和迭代在时间复杂度方面是等价

2016-05-13 09:43:54 418

转载 django 模型model与数据库3——高级操作(外联,多对多,修改字段)

访问外键(Foreign Key)值当你获取一个ForeignKey 字段时,你会得到相关的数据模型对象。 例如:>>> b = Book.objects.get(id=50)>>> b.publisher>>> b.publisher.websiteu'http://www.apress.com/'对于用`` ForeignKey`` 来定义的关系来说,在关系的

2016-04-26 17:43:13 1354

转载 django 模型model与数据库2——函数

filter数据过滤我们很少会一次性从数据库中取出所有的数据;通常都只针对一部分数据进行操作。 在Django API中,我们可以使用`` filter()`` 方法对数据进行过滤:>>> Publisher.objects.filter(name='Apress')[]filter() 根据关键字参数来转换成 WHERE SQL语句。 前面这个例子 相当于这样:S

2016-04-26 16:17:24 683

转载 django 模型model与数据库1

数据库配置首先,我们需要做些初始配置;我们需要告诉Django使用什么数据库以及如何连接数据库。我们假定你已经完成了数据库服务器的安装和激活,并且已经在其中创建了数据库(例如,用 CREATE DATABASE语句)。 如果你使用SQLite,不需要这步安装,因为SQLite使用文件系统上的独立文件来存储数据。象 TEMPLATE_DIRS 一样,数据库配置也是在D

2016-04-26 10:50:26 519

转载 django站点管理1

django.contrib 包Django自动管理工具是django.contrib的一部分。django.contrib是一套庞大的功能集管理工具是本书讲述django.contrib的第一个部分。从技术层面上讲,它被称作django.contrib.admin。django.contrib中其它可用的特性,如用户鉴别系统(django.contrib.auth)、支持匿名会话

2016-04-25 17:32:27 438

转载 django的url 正则表达

Django在检查URL模式前,移除每一个申请的URL开头的斜杠(/)。 这意味着我们为/hello/写URL模式不用包含斜杠(/)。(刚开始,这样可能看起来不直观,但这样的要求简化了许多工作,如URL模式内嵌,我们将在第八章谈及。)模式包含了一个尖号(^)和一个美元符号($)。这些都是正则表达式符号,并且有特定的含义: 上箭头要求表达式对字符串的头部进行匹配,美元符号则要求表达式对字符串

2016-04-22 11:37:38 3773 1

转载 Django是怎么url请求

Django是怎么处理url请求开始于setting文件。当你运行python manage.py runserver,脚本将在于manage.py同一个目录下查找名为setting.py的文件。这个文件包含了所有有关这个Django项目的配置信息,均大写: TEMPLATE_DIRS , DATABASE_NAME , 等. 最重要的设置时ROOT_URLCONF,它将作为URLconf

2016-04-22 10:35:49 628

转载 django创建第一个项目

开始一个项目一但你安装好了python,django和(可选的)数据库及相关库,你就可以通过创建一个project,迈出开发django应用的第一步。项目 是 Django 实例的一系列设置的集合,它包括数据库配置、Django 特定选项以及应用程序的特定设置。如果第一次使用 Django,必须进行一些初始化设置工作。 新建一个工作目录,例如 /home/username/

2016-04-21 16:17:16 548

转载 django的安装

Python 安装Django本身是纯Python编写的,所以安装框架的第一步是确保你已经安装了Python。Django安装Windows系统上,推荐使用7-Zip(http://www.djangoproject.com/r/7zip/)来解压缩.tar.gz文件。 解压缩完成后,以管理员权限启动一个DOS Shell(命令提

2016-04-21 16:02:38 418

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除