- 博客(94)
- 收藏
- 关注
转载 数字三角形
题目描述738810274445265如上图所示,从一个数字三角形的顶部走到底部有很多条不同的路径,规则是只能从当前节点走到下一层相邻的节点,即下一层的左边或右边。例如第三行第二个数字“1”只能走到第四行的第二个数字“7”与第三个数字“4”。请寻找最佳一条路径,使得这条路径上节点的数字总和最大。输入描述:输入包含多组。每组数据的第一...
2019-04-02 13:12:00 298
转载 放苹果
题目描述把 M 个同样的苹果放在 N 个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?注意:5、1、1 和 1、5、1 是同一种分法,即顺序无关。输入描述:输入包含多组数据。每组数据包含两个正整数 m和n(1≤m, n≤20)。输出描述:对应每组数据,输出一个整数k,表示有k种不同的分法。示例1输入复制7 3...
2019-04-01 15:17:00 251
转载 汉诺塔I
题目描述对于传统的汉诺塔游戏我们做一个拓展,我们有从大到小放置的n个圆盘,开始时所有圆盘都放在左边的柱子上,按照汉诺塔游戏的要求我们要把所有的圆盘都移到右边的柱子上,请实现一个函数打印最优移动轨迹。给定一个intn,表示有n个圆盘。请返回一个string数组,其中的元素依次为每次移动的描述。描述格式为: move from [left/mid/right] to [left...
2019-03-30 13:53:00 202
转载 还零钱
题目描述考虑仅用1分、5分、10分、25分和50分这5种硬币支付某一个给定的金额。例如需要支付11分钱,有一个1分和一个10分、一个1分和两个5分、六个1分和一个5分、十一个1分这4种方式。请写一个程序,计算一个给定的金额有几种支付方式。注:假定支付0元有1种方式。输入描述:输入包含多组数据。每组数据包含一个正整数n(1≤n≤10000),即需要支付的金额。输出描述:...
2019-03-30 13:53:00 271
转载 递归与动态规划II-汉诺塔
题目描述有一个int数组arr其中只含有1、2和3,分别代表所有圆盘目前的状态,1代表左柱,2代表中柱,3代表右柱,arr[i]的值代表第i+1个圆盘的位置。比如,arr=[3,3,2,1],代表第1个圆盘在右柱上、第2个圆盘在右柱上、第3个圆盘在中柱上、第4个圆盘在左柱上。如果arr代表的状态是最优移动轨迹过程中出现的状态,返回arr这种状态是最优移动轨迹中的第几个状态。如...
2019-03-30 13:52:00 347
转载 leetcode 95. Unique Binary Search Trees II
实现思路:分治:先建立左子树,再建立右子树,然后合并两种情况。/** * Definition for a binary tree node. * type TreeNode struct { * Val int * Left *TreeNode * Right *TreeNode * } */func generateTr...
2019-03-07 16:54:00 136
转载 技术实力详解
技术实力详解理解评估技术实力的基本原则后,我们知道了需要解决的问题复杂度越高,技术实力就越高。在这个基础上,我把技术实力分为两大类 6 分类:硬实力: 真正解决问题的能力,别人可以看出来的能力,技术实力按照“点、线、面、体”的 4 个分类逐层上升;软实力: 比硬实力更厉害但也更虚的能力,简单来说,要想解决问题首先得发现问题,但很多时候问题并不是一目了然的,需要有一定的技术...
2019-02-21 13:35:00 366
转载 python flask route中装饰器的使用
问题:route中的装饰器为什么感觉和平时使用的不太一样,装饰器带参数和不太参数有什么区别?被修饰的函数带参数和不带参数有什么区别?测试1:装饰器不带参数,被修饰的函数也不带参数。def log(func): print"execute log" print func def use_log(): print "execute ...
2019-01-30 14:49:00 359
转载 python flask 如何修改默认端口号
场景:按照github文档上启动一个flask的app,默认是用5000端口,如果5000端口被占用,启动失败。样例代码:from flask import Flaskapp = Flask(__name__)@app.route('/')def hello(): return 'Hello, World!'启动的脚本:$ e...
2019-01-29 19:19:00 3193
转载 python学习
函数库的使用:https://docs.python.org/2/library/index.htmlpython语言使用:https://docs.python.org/2/reference/index.htmlpip安装源:https://pypi.python.org/pypi?%3Aaction=browse常用库介绍:图形界面:Tkinter,wxPyth...
2019-01-16 14:07:00 160
转载 kafka consumer重复消费问题
在做分布式编译的时候,每一个worker都有一个consumer,适用的kafka+zookeep的配置都是默认的配置,在消息比较少的情况下,每一个consumer都能均匀得到互不相同的消息,但是当消息比较多的时候,这个时候consumer就有重复消费的情况。如何排查这种问题呢?最开始以为是系统资源的瓶颈,编译worker和kafka cluster都在一个集群上,导致消息同步不...
2019-01-15 21:04:00 624
转载 go 语言如何跨平台编译
以evio源码的分析来说明:我们看到在有些文件的头部有这样一个标识:文件链接:https://github.com/tidwall/evio/blob/master/evio_unix.go// +build darwin netbsd freebsd openbsd dragonfly linux 它表示的是这个文件只在darwin netbsd openbsd drag...
2019-01-15 20:55:00 749
转载 go web framework gin group api 设计
假如让你来设计group api, 你该怎么设计呢?group api 和普通api的区别在于前缀不同,如果group api的版本为v1.0 那么相对应的url为/v1.0/xxx, 如果是普通api的话那么api相对应的版本为/xxx在gin web framework 中设计的原则也是以相对路径来区分。// RouterGroup is used internall...
2019-01-14 19:16:00 316
转载 go web framework gin middleware 设计原理
场景:一个middleware可以具体为一个函数,而由前面的gin 路由分析可得,每一个路径都对有一个HandlersChain 与其对应。那么实际上增加一个middleware的过程,就是将每一个路由策略加进来之前,与其绑定,这样就能使得这一类的路由到来的时候触发这个中间件生效。下面看看gin web framework中是如何实现的?首先是:gin.default()函数...
2019-01-07 20:08:00 231
转载 go web framework gin 路由表的设计
在上一篇go web framework gin 启动流程分析这一篇文章中,我分析了go gin启动的过程,在这一篇文章中我将继续上面的分析,讨论gin 中路由表是如何设计的?首先查看engine.handleHTTPRequest() 这个方法的定义:func (engine *Engine) handleHTTPRequest(c *Context) { httpMe...
2019-01-07 16:15:00 312
转载 go web framework gin 启动流程分析
最主要的package : gin最主要的struct: EngineEngine 是整个framework的实例,它包含了muxer, middleware, configuration settings. 通过New() 或者Default()来创建一个Engine 的实例。type Engine struct { RouterGroup //...
2019-01-07 15:26:00 229
转载 待研究的那些经典算法
基树(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...
2019-01-04 16:52:00 120
转载 Linux下的5种I/O模型(转)
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模型...
2019-01-03 16:25:00 151
转载 资源索引
数据结构和算法动态可视化:https://visualgo.net/zhgo语言常见package索引:https://golang.org/pkg/go 帮助文档:https://godoc.org/国内访问站点https://golang.google.cn/go 源代码托管网站:https://go-review.googlesource.com/admin/re...
2019-01-02 15:12:00 382
转载 go语言常见问题总结
go语言中的goroutine和其它语言中的coroutine有什么相同和不同?coroutine意味着支持将控制转移到另一个协程的明确手段。也就是说,程序员在确定coroutine何时应该暂停执行并将其控制权传递给另一个coroutine时(通过调用return/exit(通常称为yield))来编写coroutine。goroutine它隐含的放弃了某些不确定点的控制...
2018-12-23 19:03:00 313
转载 使用kafka和zookeeper 构建分布式编译环境
1:在每台机器上安装jdk, 脚本代码如下:每一个机器上下载jdk,zookeeper,kafka链接:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html http://mirrors.hust.edu.cn/apache/zookeeper/zoo...
2018-11-21 21:40:00 123
转载 ubuntu 更改hostname, hosts后没有办法执行sudo 问题
由于主机名有重复的情况,所有需要更改主机名,遇到几个问题,主机名更改,重启系统以后不能执行sudo,另外也不知道root用户名密码。这个时候陷入了死循环。网上搜集的办法,都是用sudo 命令去更改,但是sudo 命令都用不了,怎么更改呢?于是找到了这个solution: https://github.com/NixOS/nixpkgs/issues/18012办法:开启两个终端,...
2018-11-21 11:59:00 448
转载 java.util.concurrent ThreadPoolExecutor源码分析
实现的接口:Executor, ExecutorService子类:ScheduledThreadPoolExecutor这类为java线程池的管理和创建,其中封装好的线程池模型在Executors类中有实现。抛开Executors类中的实现,仅谈线程池模型ThreadPoolExecutor线程池设计原理分析:官方文档Core and maximum pool size...
2018-11-10 14:07:00 232
转载 Java总结篇系列:Java泛型(转)
一. 泛型概念的提出(为什么需要泛型)?首先,我们看下下面这段简短的代码: 1 public class GenericTest { 2 3 public static void main(String[] args) { 4 List list = new ArrayList(); 5 list.add("qqy...
2018-11-09 20:06:00 109
转载 java.lang.Runnable 源码分析
子接口:RunnableFuture<V>, RunnableScheduledFuture<V>实现类:AsyncBoxView.ChildState, ForkJoinWorkerThread, FutureTask, RenderableImageProducer, SwingWorker, Thread, TimerTask.有一个 void ru...
2018-11-09 19:33:00 226
转载 C++类构造函数初始化列表(转)
构造函数初始化列表以一个冒号开始,接着是以逗号分隔的数据成员列表,每个数据成员后面跟一个放在括号中的初始化式。例如:{public:inta;floatb;//构造函数初始化列表CExample():a(0),b(8.8){}//构造函数内部赋值CExample(){...
2018-11-08 20:34:00 104
转载 Linux可重入函数和线程安全的区别与联系(转)
*****可重入函数 函数被不同的控制流程调用,有可能在第一次调用还没返回时就再次进入该函数,这称为重入。 当程序运行到某一个函数的时候,可能因为硬件中断或者异常而使得在用户正在执行的代码暂时终端转而进入你内核,这个时候如有一个信号需要被处理,而处理的这个信号的时候又会重新调用刚才中断的函数,如果函数内部有一个全局变量需要被操作,那么,当信号处理完成之后重新返回用户态...
2018-11-08 20:26:00 110
转载 Java NIO:浅析I/O模型(转)
原文链接:http://www.cnblogs.com/dolphin0520/p/3916526.html以下是本文的目录大纲: 一.什么是同步?什么是异步? 二.什么是阻塞?什么是非阻塞? 三.什么是阻塞IO?什么是非阻塞IO? 四.什么是同步IO?什么是异步IO? 五.五种IO模型 六.两种高性能IO设计模式一.什么是同步?什么是异步?...
2018-10-28 17:30:00 176
转载 负载均衡算法与实现
算法1:轮询算法2:加权轮询,加权轮询是在轮询的基础上,根据服务器的性能差异,为服务器赋予一定的权值。服务器 1 被赋予的权值为 5,服务器 2 被赋予的权值为 1,那么 (1, 2, 3, 4, 5) 请求会被发送到服务器 1,(6) 请求会被发送到服务器 2。算法3:最少连接算法4:加权最少连接算法5:随机算法算法6:原地址hash法。可以使用一致性hash算法避...
2018-09-22 21:03:00 236
转载 分布式锁设计方案
方案1:数据库的唯一原理:当想要获得锁时,就向表中插入一条记录,释放锁时就删除这条记录。唯一索引录只被插入一次,那么就可以用这个记录是否存在来判断是否存于锁定。存在的问题锁没有失效时间,解锁失败的话其他线程无法再获得锁。只能是非阻塞锁,插入失败直接就报错了,无法重试。不可重入,已经获得锁的进程也必须重新获取锁。方案2:Redis 的 SETNX 指令原...
2018-09-21 22:12:00 166
转载 ACID/CAP/BASE 理论知识
ACID是事务的四大特性,想要成为事务,必须具备这四点。Atomicity原子性体现在对于一个事务来讲,要么一起执行成功要么一起失败,执行的过程中是不能被打断或者执行其他操作的。Consistency一致性表现为事务进行过后和执行前,整体系统都是稳定的,比如对于入账出账操作是不会有总资金的变化的。Isolation隔离性表示各个事务之间不会互相影响,数据库一般会提...
2018-09-21 14:27:00 158
转载 分布式ID设计方案
分布式ID的定义:全局唯一有序性有意义高可用紧凑性序列号的可预测性方案1:使用数据库递增的顺序最常见的方式。利用数据库,全数据库唯一。优点:1)简单,代码方便,性能可以接受。2)数字ID天然排序,对分页或者需要排序的结果很有帮助。缺点:1)不同数据库语法和实现不同,数据库迁移的时候或多数据库版本支持的时候需要处理。2)在单...
2018-09-20 22:37:00 144
转载 perl代码调试
perl调试教程一、DESCRIPTIONA (very) lightweight introduction in the use of the perl debugger, and a pointer to existing,deeper sources of information on the subject of debugging perl programs.There's ...
2018-08-25 16:01:00 357
转载 文档型数据库设计模式-如何存储树形数据 [转]
在数据库中存储树形结构的数据,这是一个非常普遍的需求,典型的比如论坛系统的版块关系。在传统的关系型数据库中,就已经产生了各种解决方案。此文以存储树形结构数据为需求,分别描述了利用关系型数据库和文档型数据库作为存储的几种设计模式。A.关系型数据库设计模式1idnameparent_id1ANULL2B13...
2018-08-15 17:26:00 169
转载 树形结构的数据库表Schema设计
程序设计过程中,我们常常用树形结构来表征某些数据的关联关系,如企业上下级部门、栏目结构、商品分类等等,通常而言,这些树状结构需要借助于数据库完成持久化。然而目前的各种基于关系的数据库,都是以二维表的形式记录存储数据信息,因此是不能直接将Tree存入DBMS,设计合适的Schema及其对应的CRUD算法是实现关系型数据库中存储树形结构的关键。 理想中树形结构应该具备如下特征:数据...
2018-08-15 16:48:00 174
转载 http协议相关
HTTP请求方法HTTP消息头HTTP请求头HTTP响应头HTTP cookie机制和实现原理HTTP请求方法超文本传输协议(HTTP, HyperText Transfer Protocol)是一种无状态的协议,它位于OSI七层模型的传输层。HTTP客户端会根据需要构建合适的HTTP请求方法,而HTTP服务器会根据不同的HTTP请求方法做出不同的响应。...
2018-08-15 11:49:00 335
转载 HTTPS加密原理(转)
HeaderHTTP、HTTPS在我们日常开发中是经常会接触到的。我们也都知道,一般 Android 应用开发,在请求 API 网络接口的时候,很多使用的都是 HTTP 协议;使用浏览器打开网页,也是利用 HTTP 协议。看来 HTTP 真是使用广泛啊,但是,HTTP 是不安全的。利用网络抓包工具就可以知道传输中的内容,一览无余。比如我经常会使用 Fiddler 来抓包,搜集一些...
2018-08-15 11:20:00 124
转载 jvm内存配置参数
请看下面题目: 对于jvm内存配置参数: -Xmx10240m -Xms10240m -Xmn5120m -XXSurvivorRatio=3 其最小内存值和Survior区总大小分别是: a. 5120m,1024m b.5120m,2048m c.10240m,1024m d.10240m,2048m 答案是:d. 首先必须知道几...
2018-07-15 11:08:00 141
转载 Vim 文件配置
cat ~/.vimrcsyntax onset nuset encoding=utf-8set ts=4set fileencodings=ucs-bom,utf-8,cp936set fileencoding=gb2312set termencoding=utf-8"""""""""""""""""""""" "Quickly Run """"...
2018-07-02 16:56:00 105
转载 [转]linux shell 多线程实现
情景shell脚本的执行效率虽高,但当任务量巨大时仍然需要较长的时间,尤其是需要执行一大批的命令时。因为默认情况下,shell脚本中的命令是串行执行的。如果这些命令相互之间是独立的,则可以使用“并发”的方式执行这些命令,这样可以更好地利用系统资源,提升运行效率,缩短脚本执行的时间。如果命令相互之间存在交互,则情况就复杂了,那么不建议使用shell脚本来完成多线程的实现。为了方便阐...
2018-06-27 11:49:00 127
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人