自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 不到一个月用业余时间撸了个App

起因虽然是个程序员,但是从来没做过 Android 和 iOS 应用的开发。但是一直有一个想法,想开发一个自己的 App 并且发布。为此,也做了一些了解,发布到 Apple App Store 需要开发者账号,这个账号每年 99 刀,在这不得不吐槽一句太贵了,还不是终身,而是每年 99 刀,尤其对于我这种非专业 iOS 开发者来说,又没那么多应用发布,就有些不值得。所以只能转 Android 平台了,也了解了一下国内的众多安卓应用市场,这里也得吐槽一下,国内的 Android 市场太混乱了,每家都有一个

2020-10-27 12:16:49 13740

原创 公众号自定义菜单开发

写在前面因为前边给公众号添加智能对话机器人,启用了公众号后台服务器配置。然后原来的公众号的后台自定义菜单就失效了,所以没办法,我们也只能去自己开发了,也就有了这篇文章。这篇文章会用到给你的公众号添加一个智能机器人的一些代码,所以没看过之前文章的同学可以先去看一下。虽然自定义菜单的流程和代码都完成了,但是自定义菜单需要认证的公众号才行,目前个人的公众号认证功能正在逐步开放中,应该不久就都可以了,如果你和我一样还没有收到个人认证的通知,那么就耐心等待一段时间吧。获取 access_token因为在

2020-09-13 17:19:59 543

原创 给你的公众号添加一个智能机器人

环境和工具公众号一个云服务器一台Pytho 环境Flask(Python 第三方库)图灵机器人账号以上就是我们实现公众号后台智能对话机器人需要的环境和工具,前两个就不多说了。我们代码使用 Python 开发,所以需要配置好 Python 开发环境,安装 Flash 库。最后需要注册一个图灵机器人账号,调用其 API 接口。写在前面我也是最后都折腾完了,才发现原来图灵机器人直接绑定公众号就可以接管后台消息,实现智能对话。让我白白花费了一下午去用图灵的 API 接口去实现这个功能。不过这个过

2020-09-08 09:42:14 1672 2

原创 数据结构与算法——二叉树基础

树在介绍二叉树之前,我们需要先明白什么是树,因为二叉树是树的其中一种,因为我们用的最多,所以我们大多都在学习和了解二叉树。树是一种抽象数据类型或是实现这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合。它是由n(n>0)个有限节点组成一个具有层次关系的集合。树具有以下特点:每个节点都只有有限个子节点或无子节点没有父节点的节点称为根节点每一个非根节点有且只有一个父节点除了根节点外,每个子节点可以分为多个不相交的子树树里面没有环路(cycle)树还有一些专用的术语和概念,

2020-09-08 09:40:36 208

原创 腾讯云搭建 Typecho 博客

云服务器设置首先肯定要先有一台云服务器了,可以看看哪家优惠力度比较大,然后选择哪家。我这里购买的腾讯云,安装的 Centos 系统。所以后边的设置也是以腾讯云为例,其他家的也都大同小异。为了安全和方便我们先把服务器的密码改了。进入服务器实例界面,然后在更多->密码/密钥->重置密码,如下图所示。然后我们配置安全组,在控制台点击安全组,然后点击新建,选择模板为放通22,80,443,3389端口和ICMP协议,然后确定新建安全组。在我们新建的安全组上,点击修改规则,然后添加规则,来源

2020-09-08 09:33:47 540

原创 数据结构与算法——散列表

什么是散列表散列表(hash table),我们平时叫它哈希表或者Hash 表,你肯定经常听到它。散列表是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。由定义我们可以知道,散列表用的是数组支持下标访问数据的特性,所以散列表是数组的一种扩展,有数组演化而来...

2019-06-24 12:17:36 283

原创 数据结构与算法——跳表

什么是跳表跳表全称为跳跃列表,它允许快速查询,插入和删除一个有序连续元素的数据链表。跳跃列表的平均查找和插入时间复杂度都是O(logn)。快速查询是通过维护一个多层次的链表,且每一层链表中的元素是前一层链表元素的子集(见右边的示意图)。一开始时,算法在最稀疏的层次进行搜索,直至需要查找的元素在该层两个相邻的元素中间。这时,算法将跳转到下一个层次,重复刚才的搜索,直到找到需要查找的元素为止。一...

2019-06-10 09:23:01 952

原创 数据结构与算法系列——二分查找

二分查找算法的简单介绍今天我们来学习一下二分查找算法,也叫做折半查找算法。使用二分查找算法的前提是数据需要是有序的。二分查找的思想非常简单,很容易理解,就是每次取中间位置的数和要找的数作比较,通过判断是大还是小来重新选择中间位置,直到找到。但是在实际的应用中却并不简单,因为我们实际碰到的问题不会像一个排好序的数组,然后让我们找出其中是不是包含某一个数这么简单。简单的例子我们在生活中也会经常遇...

2019-05-19 13:46:08 379

原创 剑指Offer——跳台阶

题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。时间限制:1秒 空间限制:32768K代码实现public class Solution { public int JumpFloor(int target) { if(target < 3){ return t...

2019-05-17 10:34:41 123

原创 剑指Offer——斐波那契数列

题目描述大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39时间限制:1秒 空间限制:32768K代码实现public class Solution { public int Fibonacci(int n) { int a = 1,b = 1,c = 0; if(n == 0){...

2019-05-14 10:00:06 110

原创 剑指Offer——旋转数组的最小数字

题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。时间限制:3秒 空间限制:32768K本题知识点: 查找代码实现import java.util.Arra...

2019-05-14 09:57:02 251

原创 剑指Offer——二进制中 1 的个数

题目描述输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。时间限制:1秒 空间限制:32768K代码实现public class Solution { public int NumberOf1(int n) { int count = 0; while(n!=0){ count++; n ...

2019-05-14 09:53:15 168

原创 Mac 下 Centos7-Minimal 版本虚拟机软件安装

下载 Centos7 ISO 文件官方下载地址:http://isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1810.iso安装使用 VMWare 虚拟机方式安装,安装过程很简单,不详细说了yum 安装 ifconfig 工具yum install net-tools.x86_64安装 VIM ...

2019-05-11 20:58:18 475

原创 剑指Offer——用两个栈实现队列

题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。时间限制:1秒 空间限制:32768K 热度指数:383776本题知识点: 队列 栈代码实现import java.util.Stack;public class Solution { Stack<Integer> stack1 = new Stack<Integer...

2019-04-23 16:08:25 222

原创 数据结构与算法系列——递归

递归的理解在学习数据结构和算法的过程中,递归可能是比较难理解的一个知识点,每次都试着用自己的大脑去把一步一步去想清楚,结果最后把自己都绕晕了。我们很多人都遇到过这种情况,读源码的时候,我们想弄清楚一个方法的具体实现,然后跟进去发现里边还有一个方法,然后我们又跟到新的方法里边,结果发现里边还有另一个新的方法……这样跟了一层又一层,终于到了最后一层没有再调用其他的方法,然后我们再一层一层返回去,最...

2019-04-13 18:15:31 266

原创 剑指Offer——从头到尾打印链表

题目描述输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。时间限制:1秒 空间限制:32768K本题知识点: 链表代码实现/*** public class ListNode {* int val;* ListNode next = null;** ListNode(int val) {* t...

2019-04-11 22:40:36 110

原创 剑指Offer——替换空格

题目描述请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。时间限制:1秒 空间限制:32768K本题知识点: 字符串代码实现public class Solution { public String replaceSpace(StringBuffer str) { ...

2019-04-09 20:59:37 110

原创 剑指Offer——二维数组中的查找

题目描述在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。时间限制:1秒 空间限制:32768K本题知识点: 查找代码实现public class Solution { public boolean Find(int target, int...

2019-04-08 10:57:10 187

原创 数据结构与算法系列——队列

什么是队列队列也是一种操作受限制的线性表,只允许在表的前端进行删除,也就是出队,而在表的后端进行插入,即入队。举一个生活中常见的例子,我们经常会遇到排队办事,先来的排在前边先办理,后来的排在后边,不允许插队。先进先出,这就是典型的队列。队列的实现队列的概念很容易理解,操作也比较简单,很容易掌握。跟栈一样,队列也能用数组和链表来实现,用数组实现的队列叫顺序队列,用链表实现的队列叫链式队列。...

2019-03-30 21:29:32 146

转载 数据结构与算法系列--十大排序(附动态图解)

本文转自公众号 「程序员私房菜 」一直有写一篇关于排序算法文章的打算,直到我看到了这一篇,我放弃了自己写的打算,因为这篇写的太经典了。这里强烈推荐给大家。之前的一篇 几张动态图清晰展示常用数据结构及其设计原理 发出来之后反响不错,这次来个动图排序算法大全。数据结构与算法,算是齐了!本文将采取动态图 + 文字描述 + Java代码实现来讲解以下十大排序算法:冒泡...

2019-03-23 12:42:09 447

原创 数据结构与算法系列——栈

什么是栈栈是一种运算受限制的线性表,只允许在表的一端进行插入和删除操作。这一端被称为栈顶,另一端被称为栈底。向一个栈中插入新数据叫做进栈、入栈或者压栈,是把新元素放到栈顶上边,使其成为新的栈顶元素;删除数据叫做出栈或者退栈,就是把栈顶的元素删掉,使其下边的元素称为新的栈顶元素。举一个容易理解的例子,就是有一摞盘子,我们用的时候从上往下一个一个取,放的时候都是从下往上一个一个放,一般不从中间取或...

2019-03-09 23:00:06 272

原创 数据结构与算法系列——链表详解

上次我们简单的对比了一下数组和链表的区别和各自的优缺点,今天我们来详细看一下链表这个结构。链表的结构五花八门,我们几天主要看一下三种最常用的链表结构:单链表、双向链表和循环列表。单链表我们首先来看一下最简单、最常用的单链表。前边我们已经知道链表是通过指针将一些分散的内存块连接到一起。其中,我们把每个内存块叫做链表的一个结点。为了将每个结点连接到一起,每个结点不仅存储数据,而且还需要记录下...

2019-03-03 22:19:05 228

原创 数据结构与算法系列——数组和链表

数组的介绍在每一种编程语言种,基本都有数组这种数据类型,当然它不仅是一种数据类型,还是一种基础、简单的数据结构。数组的定义是:数组是一种线性表数据结构,他用一组连续的内存空间,来储存一组相同类型的数据数组的特点数组是一种线性表,线性表就是数据像一条线一样,排列成一条有序的队,每个数据只有前和后两个方向。数组在内存中的储存是连续的,声明数组的时候会在内存中找一块连续的空间,来依次储存数组的每...

2019-02-22 23:31:02 153

原创 数据结构与算法系列——时间、空间复杂度

数据结构和算法本质就是帮我们用最快的时间和最少的空间来执行我们的代码。所以,执行效率是衡量一个算法的非常重要的指标。那如何来计算你的算法代码的执行效率呢?这就需要时间、空间复杂度来分析了。有人可能会说,我把代码执行一遍,然后通过统计、监控就能知道执行的时间和需要的内存大小。干嘛还需要时间、空间复杂度来分析呢?我都能得到具体需要的时间和内存了,还需要多此一举吗?首先,这种评估算法效率的方法没有问...

2019-02-21 10:10:10 248

原创 朴素贝叶斯算法&应用实例

朴素贝叶斯朴素贝叶斯中的朴素是指假设各个特征之间相互独立,不会互相影响,所以称为朴素贝叶斯。正是因为这个假设,使得算法的模型简单且容易理解,虽然牺牲了一点准确性,但是如果模型训练的好,也能得到不错的分类效果。朴素贝叶斯公式:P(yi,X)=P(X,yi)P(yi)P(X)=Pyi∏P(xi,yi)P(X)P(y_i,X)=\frac{P(X,y_i)P(y_i)}{P(X)}=\frac{...

2019-01-24 21:56:27 4200

原创 推荐系统-Item Based CF实例

前边我们已经简单介绍了基于内容的推荐系统CB和基于协同过滤的推荐系统CF,今天我们就来看一个基于协同过滤中的基于物品的 Item Based CF 的一个实际实例来帮助大家更好的来了解和掌握以前的知识。下面我们来看看我们的元数据,数据很简单,每一行由userId(用户ID)、itemId(物品ID)、score(用户打分)组成,之间用”,“分隔。我们计算的时候用下边这个相似度计算公式,这个公...

2019-01-15 23:15:45 1228

原创 推荐算法——基于协同过滤CF

前边我们已经介绍了推荐算法里的基于内容的推荐算法CB,今天我们来介绍一下基于协同的推荐算法Collaboration Filtering(CF)。协同过滤是一个利用群体智慧的一个算法,举一个简单的例子,如果放假了你想去北京玩几天,但是不知道北京都有哪些好玩的,你会怎么做?你可能会上网查一下网友的推荐,也可能会咨询一下曾经去过北京的亲朋好友,最后你很可能会采纳你好朋友的推荐。因为你的好朋友和你相似的...

2019-01-06 18:25:16 367

原创 推荐算法——基于内容的推荐CB

推荐系统不仅可以有效地帮助用户发现高质量的适合自己的信息,另一方面也帮助应用和商家增加用户的使用时长,更好的留住用户。推荐系统越精准,用户的体验更好,商家获得的回报越大。所以这也是推荐系统应用越来越广泛的主要原因。现在我们的生活和学习中处处都可以看到推荐系统的应用,比如我们打开百度首页,就可以看到给我们推荐的新闻热点。比如我们打开优酷看视频的时候还有微博,今日头条,抖音,京东,淘宝等...

2019-01-06 18:13:09 1394

原创 LCS详解

LCS是什么LCS是Longest Common Subsequence的缩写,即最长公共子序列。一个序列,如果是两个或者多个序列的子序列,并且是所有子序列中最长的,则为最长公共子序列。(有序但不连续也为子序列)序列 13456 和 345674 的最长公共子序列为 3456序列 ABDBC 和 BCDBA 的最长公共子序列为 BDBLCS可以用来做什么生物学上用来进行基因序列比对...

2018-12-12 00:27:49 1901

原创 TF-IDF介绍

TF-IDF是什么TF-IDF是一种统计方法,用以评估一个词对于一篇文章或语料库中一篇文章的重要性。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。TF-IDF的使用场景TF-IDF加权的各种形式常被搜索引擎应用,作为文件与用户查询之间相关程度的度量或评级。除了TF-IDF以外,因特网上的搜索引擎还会使用基于链接分析的评级方法,以确定文件在搜寻结...

2018-12-09 15:04:31 724

原创 学习笔记—MapReduce

MapReduce是什么MapReduce是一种分布式计算编程框架,是Hadoop主要组成部分之一,可以让用户专注于编写核心逻辑代码,最后以高可靠、高容错的方式在大型集群上并行处理大量数据。MapReduce的存储MapReduce的数据是存储在HDFS上的,HDFS也是Hadoop的主要组成部分之一。下边是MapReduce在HDFS上的存储的图解HDFS主要有Namenode和Dat...

2018-12-07 23:38:52 127

原创 hexo博客更换主题

前边我们已经学会了博客的搭建了,这次我们来看看怎么样让我们的博客更漂亮,更个性化。那就是来更换博客的主题,让我们的博客与众不同起来。我们可以去hexo的主题官网去挑选你自己喜欢的主题风格。里边收录了很多牛人自己写的漂亮的主题。选择一个你喜欢的主题,每个主题都在GitHub上面开源的代码。下边以我自己选择的Annie主题为例来介绍一下。下载和切换主题首先我们进入到你的本地博客目录下的them...

2018-12-01 12:06:44 591

原创 Mac下Anaconda的安装和使用

前提在刚接触python的时候我想大多数人都会面临一个问题,我到底是选择2还是3,因为现在网上好多的资料和视频项目中都还是用的2,我们跟着学习的时候肯定也是首先从2开始学的,但是我们心里肯定也担心学2会不会跟不上技术的发展,毕竟3才是最新的,而且将来的项目势必也都会逐渐去支持最新的3,这个时候我们就有了既需要一个2的环境来学习以前的一些项目来入门,也需要3的环境来跟上最新的技术,就需要一个强大的...

2018-11-29 10:40:31 3506

原创 hexo+github搭建个人博客

首先需要安装git和node.jsMac下安装git和node.js首先在终端查看是否安装了git,如果出现以下信息说明安装了git,请跳过这一步$ gitusage: git [--version] [--help] [-C &amp;lt;path&amp;gt;] [-c name=value] [--exec-path[=&amp;lt;path&amp;gt;]] [--html-path...

2018-11-18 20:43:38 175

原创 Flume的介绍和简单操作

Flume是什么Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。Flume的功能支持在日志系统中定制各类数据发送方,用于收集数据提供对数据简单处理,并写到各类数据接收方(可定制)的能力Flume...

2018-11-16 15:47:34 198

原创 Hbase的安装和基本使用

Hbase介绍HBase是一个开源的非关系型分布式数据库(NoSQL),它参考了谷歌的BigTable建模,实现的编程语言为&nbsp;Java。它是Apache软件基金会的Hadoop项目的一部分,运行于HDFS文件系统之上,为&nbsp;Hadoop&nbsp;提供类似于BigTable 规模的服务。因此,它可以容错地存储海量稀疏的数据。Hbase安装安装环境三台虚拟机:mast...

2018-11-16 15:46:19 219

原创 Linux下安装spf13-vim

前言spf13-vim是一个集成多个非常好用的vim插件的集合,对于在众多插件中不知道该怎么做选择,并且为各个插件的安装而头疼的我们提供了一个很好的工具,让我仅仅需要安装和配置一次就能拥有众多优秀的vim插件。spf13-vim的GitHub上有各个平台的安装步骤和配置方法,但是我们在安装的过程中还是会遇到或大或小的坑,下面我就把我在Linux上安装过程中遇到的问题,和最后的安装步骤写给大...

2018-11-16 15:43:36 451

原创 Linux下更新git版本

查看git版本,卸载旧版本(如果没有安装git请直接到下一步)git --versionyum remove git安装依赖软件yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel asciidocyum install gcc perl-ExtUtils-MakeMaker编译安装最新...

2018-11-16 15:40:53 5932 3

转载 游戏设计模式

http://gpp.tkchu.me/architecture-performance-and-games.html

2017-03-01 12:02:43 138

Behavior Designer - Behavior Trees for Everyone

Behavior Designer - Behavior Trees for Everyone v1.7.3

2022-10-20

空空如也

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

TA关注的人

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