<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[teffi的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/teffi</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; teffi]]></copyright><item><title><![CDATA[98. 验证二叉搜索树]]></title><link>https://blog.youkuaiyun.com/teffi/article/details/84179286</link><guid>https://blog.youkuaiyun.com/teffi/article/details/84179286</guid><author>teffi</author><pubDate>Sat, 17 Nov 2018 12:24:31 +0800</pubDate><description><![CDATA[题目地址：https://leetcode-cn.com/problems/validate-binary-search-tree/
给定一个二叉树，判断其是否是一个有效的二叉搜索树。
假设一个二叉搜索树具有如下特征：

节点的左子树只包含小于当前节点的数。
节点的右子树只包含大于当前节点的数。
所有左子树和右子树自身必须也是二叉搜索树。
示例 1:

输入:

    2
   / \
  1 ...]]></description><category></category></item><item><title><![CDATA[96. 不同的二叉搜索树]]></title><link>https://blog.youkuaiyun.com/teffi/article/details/84178802</link><guid>https://blog.youkuaiyun.com/teffi/article/details/84178802</guid><author>teffi</author><pubDate>Sat, 17 Nov 2018 12:15:53 +0800</pubDate><description><![CDATA[题目地址：https://leetcode-cn.com/problems/unique-binary-search-trees/
给定一个整数 n，求以 1 … n 为节点组成的二叉搜索树有多少种？
示例:
输入: 3
输出: 5
解释:
给定 n = 3, 一共有 5 种不同结构的二叉搜索树:
   1         3     3      2      1
    \       /  ...]]></description><category></category></item><item><title><![CDATA[95. 不同的二叉搜索树 II]]></title><link>https://blog.youkuaiyun.com/teffi/article/details/84177885</link><guid>https://blog.youkuaiyun.com/teffi/article/details/84177885</guid><author>teffi</author><pubDate>Sat, 17 Nov 2018 11:59:58 +0800</pubDate><description><![CDATA[题目地址：https://leetcode-cn.com/problems/unique-binary-search-trees-ii/
给定一个整数 n，生成所有由 1 … n 为节点所组成的二叉搜索树。
示例:
输入: 3
输出:
[
  [1,null,3,2],
  [3,2,null,1],
  [3,1,null,null,2],
  [2,1,3],
  [1,null,2,null...]]></description><category></category></item><item><title><![CDATA[94. 二叉树的中序遍历]]></title><link>https://blog.youkuaiyun.com/teffi/article/details/84171642</link><guid>https://blog.youkuaiyun.com/teffi/article/details/84171642</guid><author>teffi</author><pubDate>Sat, 17 Nov 2018 10:21:21 +0800</pubDate><description><![CDATA[题目地址：https://leetcode-cn.com/problems/binary-tree-inorder-traversal/
给定一个二叉树，返回它的中序 遍历。
示例:
输入: [1,null,2,3]
   1
    \
     2
    /
   3

输出: [1,3,2]
进阶: 递归算法很简单，你可以通过迭代算法完成吗？
我们看一个例子：
			4
		/		\
	 ...]]></description><category></category></item><item><title><![CDATA[结构型模式--代理模式]]></title><link>https://blog.youkuaiyun.com/teffi/article/details/81024838</link><guid>https://blog.youkuaiyun.com/teffi/article/details/81024838</guid><author>teffi</author><pubDate>Fri, 13 Jul 2018 00:49:44 +0800</pubDate><description><![CDATA[#include &amp;lt;iostream&amp;gt;
using namespace std;

class Girl
{
public:
    Girl(char *name = &quot;&quot;) : mName(name) {}
    char *getName() { return mName; }
private:
    char *mName;
};

class GiveGift
{
pub...]]></description><category></category></item><item><title><![CDATA[创建型模式--单例模式]]></title><link>https://blog.youkuaiyun.com/teffi/article/details/81024826</link><guid>https://blog.youkuaiyun.com/teffi/article/details/81024826</guid><author>teffi</author><pubDate>Fri, 13 Jul 2018 00:46:30 +0800</pubDate><description><![CDATA[懒汉模式

#include &amp;lt;iostream&amp;gt;
#include &amp;lt;pthread.h&amp;gt;
using namespace std;

class Singleton 
{
public:
    static Singleton *getInstance();

private:
    Singleton();
    ~Singleton();
    static...]]></description><category></category></item><item><title><![CDATA[简单工厂模式]]></title><link>https://blog.youkuaiyun.com/teffi/article/details/81024816</link><guid>https://blog.youkuaiyun.com/teffi/article/details/81024816</guid><author>teffi</author><pubDate>Fri, 13 Jul 2018 00:42:35 +0800</pubDate><description><![CDATA[#include &amp;lt;iostream&amp;gt;
using namespace std;

class BreadMaker
{
public:
    virtual void GetBread()
    {
        // NOTING
    }
};

// 黑面包代码
class BlackBread : public BreadMaker
{
public:
    voi...]]></description><category></category></item><item><title><![CDATA[创建型模式--工厂方法模式]]></title><link>https://blog.youkuaiyun.com/teffi/article/details/81024812</link><guid>https://blog.youkuaiyun.com/teffi/article/details/81024812</guid><author>teffi</author><pubDate>Fri, 13 Jul 2018 00:41:48 +0800</pubDate><description><![CDATA[#include &amp;lt;iostream&amp;gt;
using namespace std;

class BreadMaker
{
public:
    virtual void GetBread()
    {
        // NOTING
    }
};

// 黑面包代码
class BlackBread : public BreadMaker
{
public:
    voi...]]></description><category></category></item><item><title><![CDATA[mysql 常见语句]]></title><link>https://blog.youkuaiyun.com/teffi/article/details/80813356</link><guid>https://blog.youkuaiyun.com/teffi/article/details/80813356</guid><author>teffi</author><pubDate>Tue, 26 Jun 2018 12:09:46 +0800</pubDate><description><![CDATA[创建数据库

create database practice;


显示数据库

show databases;

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| p...]]></description><category></category></item><item><title><![CDATA[MAC下go开发环境搭建]]></title><link>https://blog.youkuaiyun.com/teffi/article/details/80659563</link><guid>https://blog.youkuaiyun.com/teffi/article/details/80659563</guid><author>teffi</author><pubDate>Mon, 11 Jun 2018 23:48:00 +0800</pubDate><description><![CDATA[MAC下go开发环境搭建

最近被同事经常在身边提起go，大概了解了下，go语言实际上更多的是一种工程语言，在服务端开发，并发等问题上提供了一套原生的解决方式，同时在编程方式上又采用了简单主义，代码简洁，性能强大，虽然坑比较多，但现在也越来越多的人采用go作为自己的项目语言，因此我也想在业余时间总结一个主题，记录下自己开始学习go的点滴，虽然可能内容很简单，但是我希望依然能够做到内容详尽简洁无错，...]]></description><category></category></item><item><title><![CDATA[kafka基础]]></title><link>https://blog.youkuaiyun.com/teffi/article/details/80659481</link><guid>https://blog.youkuaiyun.com/teffi/article/details/80659481</guid><author>teffi</author><pubDate>Mon, 11 Jun 2018 23:36:10 +0800</pubDate><description><![CDATA[topic 与 partition 
kafka 生产和消费消息的逻辑单位是 topic。每个 Topic 对应多个 partition。每个 partition 对应多个磁盘文件。同一 Partition 内的消息在磁盘上是顺序保存的。

生产者生产的时候需要指定一个 message key。kafka 会根据 message key 按照一定算法选择 partition 并写入对应磁盘文件。m...]]></description><category></category></item><item><title><![CDATA[经典模型之Lenet]]></title><link>https://blog.youkuaiyun.com/teffi/article/details/78798529</link><guid>https://blog.youkuaiyun.com/teffi/article/details/78798529</guid><author>teffi</author><pubDate>Thu, 14 Dec 2017 08:15:51 +0800</pubDate><description><![CDATA[经典模型之Lenet模型背景1985年，Rumelhart和Hinton等人提出了后向传播（BackPropagation，BP）算法[1]（也有说1986年的，指的是他们另一篇paper：Learningrepresentations by back-propagating errors)，使得神经网络的训练变得简单可行，这篇文章在GoogleScholar上的引用次数达到了19000多次，目前还]]></description><category></category></item><item><title><![CDATA[caffe各层参数详解]]></title><link>https://blog.youkuaiyun.com/teffi/article/details/78798513</link><guid>https://blog.youkuaiyun.com/teffi/article/details/78798513</guid><author>teffi</author><pubDate>Thu, 14 Dec 2017 08:08:55 +0800</pubDate><description><![CDATA[caffe各层参数详解数据层{
  name: "data"
  type: "Data"
  top: "data"
  top: "label"
  transparam {
    scale: 0.003920625
  }
  include {
    phase: TRAIN/TEST
  }
  data_param {
    source: "examples/mnist/tra]]></description><category></category></item><item><title><![CDATA[设计模式]]></title><link>https://blog.youkuaiyun.com/teffi/article/details/77132073</link><guid>https://blog.youkuaiyun.com/teffi/article/details/77132073</guid><author>teffi</author><pubDate>Sat, 12 Aug 2017 23:47:47 +0800</pubDate><description><![CDATA[设计模式创建型模式ABSTRACT FACTORY（抽象工厂）BUILDER（生成器）FACTORY METHOD（工厂方法）PROTOTYPE（原型）SINGLETON（单例）创建型模式讨论结构型模式ADAPTER（适配器）BRIDGE（桥接）COMPOSITE（组成）DECORATOR（装饰）FACADE（外观）FLYWEIGHT（享元）PROXY（代理）结构型模式的讨论行为模式CHAIN OF]]></description><category></category></item><item><title><![CDATA[再谈快速排序]]></title><link>https://blog.youkuaiyun.com/teffi/article/details/76781242</link><guid>https://blog.youkuaiyun.com/teffi/article/details/76781242</guid><author>teffi</author><pubDate>Sun, 06 Aug 2017 17:06:27 +0800</pubDate><description><![CDATA[本篇博客是在快速排序基础上优化的。算法思想快速排序是基于分治模式构思的，具体描述如下：
分解：数组A[p..r]被划分成两个（可能空）子数组A[p..q-1]和A[q+1..r]，使得A[p..q-1]中的每个元素都小于等于A(q)，而且，小于等于A[q+1..r]中的元素。下标q也在这个划分过程中进行计算。
解决：通过递归调用快速排序，对子数组A[p..q-1]和A[q+1..r]排序。
合并：因]]></description><category></category></item><item><title><![CDATA[多路复用I/O--epoll]]></title><link>https://blog.youkuaiyun.com/teffi/article/details/76565317</link><guid>https://blog.youkuaiyun.com/teffi/article/details/76565317</guid><author>teffi</author><pubDate>Wed, 02 Aug 2017 00:51:24 +0800</pubDate><description><![CDATA[多路复用I/O–epollepoll定义epoll只有epoll_create,epoll_ctl,epoll_wait 3个系统调用。int epoll_create(int size);
int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event);
int epoll_wait(int epfd, struct epoll]]></description><category></category></item><item><title><![CDATA[多路复用IO--poll]]></title><link>https://blog.youkuaiyun.com/teffi/article/details/76564617</link><guid>https://blog.youkuaiyun.com/teffi/article/details/76564617</guid><author>teffi</author><pubDate>Wed, 02 Aug 2017 00:35:58 +0800</pubDate><description><![CDATA[多路复用IO–pollpoll定义#include <poll.h>
int poll(struct pollfd fdarray[], nfds_t nfds, int timeout);返回值：准备就绪的描述符数目：若超时，返回0；若出错，返回-1与select不同，poll不是为每个条件（可续性、可写性和异常条件）构造一个描述符集，而是构造一个pollfd结构的数组，每个数组元素指定一个描述符]]></description><category></category></item><item><title><![CDATA[多路复用I/O--select]]></title><link>https://blog.youkuaiyun.com/teffi/article/details/76563313</link><guid>https://blog.youkuaiyun.com/teffi/article/details/76563313</guid><author>teffi</author><pubDate>Wed, 02 Aug 2017 00:06:59 +0800</pubDate><description><![CDATA[多路复用I/O–selectselect定义#include <sys/select.h>
int select(int maxfdp1, fd_set *restrict readfds, fd_set *restrict writefds, fd_set *restrict exceptfds, struct timeval *restrict tvptr);返回值：准备就绪的描述符数目：若超时]]></description><category></category></item><item><title><![CDATA[线程同步]]></title><link>https://blog.youkuaiyun.com/teffi/article/details/76408918</link><guid>https://blog.youkuaiyun.com/teffi/article/details/76408918</guid><author>teffi</author><pubDate>Mon, 31 Jul 2017 00:46:35 +0800</pubDate><description><![CDATA[线程同步当多个控制线程共享相同的内存时，需要确保每个线程看到一致的数据视图。如果每个线程使用的变量都是其他线程不会读取和修改的，那么就不存在一致性问题。同样，如果变量是只读的，多个线程同时读取该变量也不会有一致性问题。但是，当一个线程可以修改的变量，其他线程也可以读取或者修改的以后，我们就需要对这些线程进行同步，确保它们在访问变量的存储内容时不会访问到无效的值。互斥量互斥量（mutex）从本质上说是]]></description><category></category></item><item><title><![CDATA[多线程共享资源]]></title><link>https://blog.youkuaiyun.com/teffi/article/details/76407866</link><guid>https://blog.youkuaiyun.com/teffi/article/details/76407866</guid><author>teffi</author><pubDate>Sun, 30 Jul 2017 21:57:53 +0800</pubDate><description><![CDATA[多线程共享资源按照操作系统原理，进程是系统资源分配的最小单位，线程是cpu调度的最小单位。线程共享进程申请的资源，但是线程有维持自己正常运行的很小的资源，这很小的资源为各个线程独有。同一个进程中创建的多线程共享的环境包括：
进程代码段
进程的公有数据（利用这些共享数据，线程很容易实现相互之间的通讯）
进程打开的文件描述符
信号的处理器
进程的当前目录
进程用户ID
进程组ID
进程拥有这么多共性的同]]></description><category></category></item></channel></rss>