<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Kim891212的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Kim891212</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Kim891212]]></copyright><item><title><![CDATA[数字三角形]]></title><link>https://blog.youkuaiyun.com/Kim891212/article/details/101244638</link><guid>https://blog.youkuaiyun.com/Kim891212/article/details/101244638</guid><author>Kim891212</author><pubDate>Tue, 02 Apr 2019 13:12:00 +0800</pubDate><description><![CDATA[题目描述

738810274445265如上图所示，从一个数字三角形的顶部走到底部有很多条不同的路径，规则是只能从当前节点走到下一层相邻的节点，即下一层的左边或右边。例如第三行第二个数字“1”只能走到第四行的第二个数字“7”与第三个数字“4”。请寻找最佳一条路径，使得这条路径上节点的数字总和最大。
输入描述:
输入包含多组。每组数据的第一...]]></description><category></category></item><item><title><![CDATA[放苹果]]></title><link>https://blog.youkuaiyun.com/Kim891212/article/details/101244637</link><guid>https://blog.youkuaiyun.com/Kim891212/article/details/101244637</guid><author>Kim891212</author><pubDate>Mon, 01 Apr 2019 15:17:00 +0800</pubDate><description><![CDATA[题目描述

把 M 个同样的苹果放在 N 个同样的盘子里，允许有的盘子空着不放，问共有多少种不同的分法？注意：5、1、1 和 1、5、1 是同一种分法，即顺序无关。
输入描述:
输入包含多组数据。每组数据包含两个正整数 m和n（1≤m, n≤20）。
输出描述:
对应每组数据，输出一个整数k，表示有k种不同的分法。

示例1


输入
复制

7 3

...]]></description><category></category></item><item><title><![CDATA[还零钱]]></title><link>https://blog.youkuaiyun.com/Kim891212/article/details/101244636</link><guid>https://blog.youkuaiyun.com/Kim891212/article/details/101244636</guid><author>Kim891212</author><pubDate>Sat, 30 Mar 2019 13:53:00 +0800</pubDate><description><![CDATA[题目描述

考虑仅用1分、5分、10分、25分和50分这5种硬币支付某一个给定的金额。例如需要支付11分钱，有一个1分和一个10分、一个1分和两个5分、六个1分和一个5分、十一个1分这4种方式。请写一个程序，计算一个给定的金额有几种支付方式。注：假定支付0元有1种方式。
输入描述:
输入包含多组数据。每组数据包含一个正整数n（1≤n≤10000），即需要支付的金额。
输出描述:...]]></description><category></category></item><item><title><![CDATA[汉诺塔I]]></title><link>https://blog.youkuaiyun.com/Kim891212/article/details/101244635</link><guid>https://blog.youkuaiyun.com/Kim891212/article/details/101244635</guid><author>Kim891212</author><pubDate>Sat, 30 Mar 2019 13:53:00 +0800</pubDate><description><![CDATA[题目描述

对于传统的汉诺塔游戏我们做一个拓展，我们有从大到小放置的n个圆盘，开始时所有圆盘都放在左边的柱子上，按照汉诺塔游戏的要求我们要把所有的圆盘都移到右边的柱子上，请实现一个函数打印最优移动轨迹。
给定一个intn，表示有n个圆盘。请返回一个string数组，其中的元素依次为每次移动的描述。描述格式为： move from [left/mid/right] to [left...]]></description><category></category></item><item><title><![CDATA[递归与动态规划II-汉诺塔]]></title><link>https://blog.youkuaiyun.com/Kim891212/article/details/101244634</link><guid>https://blog.youkuaiyun.com/Kim891212/article/details/101244634</guid><author>Kim891212</author><pubDate>Sat, 30 Mar 2019 13:52:00 +0800</pubDate><description><![CDATA[题目描述


有一个int数组arr其中只含有1、2和3，分别代表所有圆盘目前的状态，1代表左柱，2代表中柱，3代表右柱，arr[i]的值代表第i+1个圆盘的位置。比如，arr=[3,3,2,1]，代表第1个圆盘在右柱上、第2个圆盘在右柱上、第3个圆盘在中柱上、第4个圆盘在左柱上。如果arr代表的状态是最优移动轨迹过程中出现的状态，返回arr这种状态是最优移动轨迹中的第几个状态。如...]]></description><category></category></item><item><title><![CDATA[leetcode 95. Unique Binary Search Trees II]]></title><link>https://blog.youkuaiyun.com/Kim891212/article/details/101244633</link><guid>https://blog.youkuaiyun.com/Kim891212/article/details/101244633</guid><author>Kim891212</author><pubDate>Thu, 07 Mar 2019 16:54:00 +0800</pubDate><description><![CDATA[实现思路：分治：先建立左子树，再建立右子树，然后合并两种情况。

/**
 * Definition for a binary tree node.
 * type TreeNode struct {
 *     Val int
 *     Left *TreeNode
 *     Right *TreeNode
 * }
 */
func generateTr...]]></description><category></category></item><item><title><![CDATA[技术实力详解]]></title><link>https://blog.youkuaiyun.com/Kim891212/article/details/101244632</link><guid>https://blog.youkuaiyun.com/Kim891212/article/details/101244632</guid><author>Kim891212</author><pubDate>Thu, 21 Feb 2019 13:35:00 +0800</pubDate><description><![CDATA[技术实力详解
理解评估技术实力的基本原则后，我们知道了需要解决的问题复杂度越高，技术实力就越高。在这个基础上，我把技术实力分为两大类 6 分类：

硬实力： 真正解决问题的能力，别人可以看出来的能力，技术实力按照“点、线、面、体”的 4 个分类逐层上升；
软实力： 比硬实力更厉害但也更虚的能力，简单来说，要想解决问题首先得发现问题，但很多时候问题并不是一目了然的，需要有一定的技术...]]></description><category></category></item><item><title><![CDATA[python flask route中装饰器的使用]]></title><link>https://blog.youkuaiyun.com/Kim891212/article/details/101244631</link><guid>https://blog.youkuaiyun.com/Kim891212/article/details/101244631</guid><author>Kim891212</author><pubDate>Wed, 30 Jan 2019 14:49:00 +0800</pubDate><description><![CDATA[问题：route中的装饰器为什么感觉和平时使用的不太一样，装饰器带参数和不太参数有什么区别？被修饰的函数带参数和不带参数有什么区别？
测试1：装饰器不带参数，被修饰的函数也不带参数。

def log(func):
    print"execute log"
    print func
    def use_log():
        print "execute ...]]></description><category></category></item><item><title><![CDATA[python flask 如何修改默认端口号]]></title><link>https://blog.youkuaiyun.com/Kim891212/article/details/101244630</link><guid>https://blog.youkuaiyun.com/Kim891212/article/details/101244630</guid><author>Kim891212</author><pubDate>Tue, 29 Jan 2019 19:19:00 +0800</pubDate><description><![CDATA[场景：按照github文档上启动一个flask的app，默认是用5000端口，如果5000端口被占用，启动失败。
样例代码：

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello():
    return 'Hello, World!'


启动的脚本：

$ e...]]></description><category></category></item><item><title><![CDATA[python学习]]></title><link>https://blog.youkuaiyun.com/Kim891212/article/details/101244629</link><guid>https://blog.youkuaiyun.com/Kim891212/article/details/101244629</guid><author>Kim891212</author><pubDate>Wed, 16 Jan 2019 14:07:00 +0800</pubDate><description><![CDATA[函数库的使用：https://docs.python.org/2/library/index.html
python语言使用：https://docs.python.org/2/reference/index.html
pip安装源：https://pypi.python.org/pypi?%3Aaction=browse
常用库介绍：

图形界面：Tkinter，wxPyth...]]></description><category></category></item><item><title><![CDATA[kafka consumer重复消费问题]]></title><link>https://blog.youkuaiyun.com/Kim891212/article/details/101244628</link><guid>https://blog.youkuaiyun.com/Kim891212/article/details/101244628</guid><author>Kim891212</author><pubDate>Tue, 15 Jan 2019 21:04:00 +0800</pubDate><description><![CDATA[在做分布式编译的时候，每一个worker都有一个consumer，适用的kafka+zookeep的配置都是默认的配置，在消息比较少的情况下，每一个consumer都能均匀得到互不相同的消息，但是当消息比较多的时候，这个时候consumer就有重复消费的情况。
如何排查这种问题呢？
最开始以为是系统资源的瓶颈，编译worker和kafka cluster都在一个集群上，导致消息同步不...]]></description><category></category></item><item><title><![CDATA[go 语言如何跨平台编译]]></title><link>https://blog.youkuaiyun.com/Kim891212/article/details/101244627</link><guid>https://blog.youkuaiyun.com/Kim891212/article/details/101244627</guid><author>Kim891212</author><pubDate>Tue, 15 Jan 2019 20:55:00 +0800</pubDate><description><![CDATA[以evio源码的分析来说明：
我们看到在有些文件的头部有这样一个标识：文件链接：https://github.com/tidwall/evio/blob/master/evio_unix.go

// +build darwin netbsd freebsd openbsd dragonfly linux  它表示的是这个文件只在darwin netbsd openbsd drag...]]></description><category></category></item><item><title><![CDATA[go web framework gin group api 设计]]></title><link>https://blog.youkuaiyun.com/Kim891212/article/details/101244626</link><guid>https://blog.youkuaiyun.com/Kim891212/article/details/101244626</guid><author>Kim891212</author><pubDate>Mon, 14 Jan 2019 19:16:00 +0800</pubDate><description><![CDATA[假如让你来设计group api, 你该怎么设计呢？
group api 和普通api的区别在于前缀不同，如果group api的版本为v1.0 那么相对应的url为/v1.0/xxx, 如果是普通api的话那么api相对应的版本为/xxx
在gin web framework 中设计的原则也是以相对路径来区分。

// RouterGroup is used internall...]]></description><category></category></item><item><title><![CDATA[go web framework gin middleware 设计原理]]></title><link>https://blog.youkuaiyun.com/Kim891212/article/details/101244625</link><guid>https://blog.youkuaiyun.com/Kim891212/article/details/101244625</guid><author>Kim891212</author><pubDate>Mon, 07 Jan 2019 20:08:00 +0800</pubDate><description><![CDATA[场景：一个middleware可以具体为一个函数，而由前面的gin 路由分析可得，每一个路径都对有一个HandlersChain 与其对应。
那么实际上增加一个middleware的过程，就是将每一个路由策略加进来之前，与其绑定，这样就能使得这一类的路由到来的时候触发这个中间件生效。
下面看看gin web framework中是如何实现的？
首先是：gin.default()函数...]]></description><category></category></item><item><title><![CDATA[go web framework gin 路由表的设计]]></title><link>https://blog.youkuaiyun.com/Kim891212/article/details/101244623</link><guid>https://blog.youkuaiyun.com/Kim891212/article/details/101244623</guid><author>Kim891212</author><pubDate>Mon, 07 Jan 2019 16:15:00 +0800</pubDate><description><![CDATA[在上一篇go web framework gin 启动流程分析这一篇文章中，我分析了go gin启动的过程，在这一篇文章中我将继续上面的分析，讨论gin 中路由表是如何设计的？
首先查看engine.handleHTTPRequest() 这个方法的定义：

func (engine *Engine) handleHTTPRequest(c *Context) {
	httpMe...]]></description><category></category></item><item><title><![CDATA[go web framework gin 启动流程分析]]></title><link>https://blog.youkuaiyun.com/Kim891212/article/details/101244624</link><guid>https://blog.youkuaiyun.com/Kim891212/article/details/101244624</guid><author>Kim891212</author><pubDate>Mon, 07 Jan 2019 15:26:00 +0800</pubDate><description><![CDATA[最主要的package : gin
最主要的struct: Engine
Engine 是整个framework的实例，它包含了muxer, middleware, configuration settings. 通过New() 或者Default()来创建一个Engine 的实例。

type Engine struct {
    RouterGroup

    //...]]></description><category></category></item><item><title><![CDATA[待研究的那些经典算法]]></title><link>https://blog.youkuaiyun.com/Kim891212/article/details/101244621</link><guid>https://blog.youkuaiyun.com/Kim891212/article/details/101244621</guid><author>Kim891212</author><pubDate>Fri, 04 Jan 2019 16:52:00 +0800</pubDate><description><![CDATA[基树(Radix Tree)的应用：

Linux 内核高速缓冲区设计：



http://liujunming.top/2017/06/25/address-space-%E9%A1%B5%E9%AB%98%E9%80%9F%E7%BC%93%E5%AD%98/
https://www.cnblogs.com/visayafan/archive/2011/12/15/2...]]></description><category></category></item><item><title><![CDATA[Linux下的5种I/O模型(转)]]></title><link>https://blog.youkuaiyun.com/Kim891212/article/details/101244622</link><guid>https://blog.youkuaiyun.com/Kim891212/article/details/101244622</guid><author>Kim891212</author><pubDate>Thu, 03 Jan 2019 16:25:00 +0800</pubDate><description><![CDATA[Linux下的五种I/O模型：



 l阻塞I/O
 l非阻塞I/O
 lI/O复用（select、poll、epoll）
 l信号驱动I/O（SIGIO）
 l异步I/O（Posix.1的aio_系列函数）

l阻塞I/O模型
...]]></description><category></category></item><item><title><![CDATA[资源索引]]></title><link>https://blog.youkuaiyun.com/Kim891212/article/details/101244619</link><guid>https://blog.youkuaiyun.com/Kim891212/article/details/101244619</guid><author>Kim891212</author><pubDate>Wed, 02 Jan 2019 15:12:00 +0800</pubDate><description><![CDATA[数据结构和算法动态可视化：https://visualgo.net/zh
go语言常见package索引：https://golang.org/pkg/
go 帮助文档：https://godoc.org/
国内访问站点https://golang.google.cn/
go 源代码托管网站：https://go-review.googlesource.com/admin/re...]]></description><category></category></item><item><title><![CDATA[go语言常见问题总结]]></title><link>https://blog.youkuaiyun.com/Kim891212/article/details/101244620</link><guid>https://blog.youkuaiyun.com/Kim891212/article/details/101244620</guid><author>Kim891212</author><pubDate>Sun, 23 Dec 2018 19:03:00 +0800</pubDate><description><![CDATA[go语言中的goroutine和其它语言中的coroutine有什么相同和不同？
coroutine意味着支持将控制转移到另一个协程的明确手段。也就是说，程序员在确定coroutine何时应该暂停执行并将其控制权传递给另一个coroutine时（通过调用return/exit（通常称为yield））来编写coroutine。
goroutine它隐含的放弃了某些不确定点的控制...]]></description><category></category></item></channel></rss>