博客园 - T~Z
uuid:24b78886-0ed1-41c2-8670-e3f31dcf42c4;id=2908
2018-12-16T15:36:06Z
T~Z
https://www.cnblogs.com/tz346125264/
feed.cnblogs.com
https://www.cnblogs.com/tz346125264/p/10129053.html
使用redis zset实现抽奖,奖池商品按时间随机分布 - T~Z
话不多说,直接上需求描述: 最近需要上一期活动,这个活动是以转盘抽奖为形式的抽奖活动,要求每个用户用积分进行抽奖,且中奖率为100%即不可出现不中任何奖品的情况,之后,又加了一个要求,即不能实行纯随机的抽取,如果如此会产生一个极端情况,如果开始的时候活动极其火爆由于随机的不可控性头一天用户便将所有优
2018-12-16T15:36:00Z
2018-12-16T15:36:00Z
T~Z
https://www.cnblogs.com/tz346125264/
【摘要】话不多说,直接上需求描述: 最近需要上一期活动,这个活动是以转盘抽奖为形式的抽奖活动,要求每个用户用积分进行抽奖,且中奖率为100%即不可出现不中任何奖品的情况,之后,又加了一个要求,即不能实行纯随机的抽取,如果如此会产生一个极端情况,如果开始的时候活动极其火爆由于随机的不可控性头一天用户便将所有优 <a href="https://www.cnblogs.com/tz346125264/p/10129053.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/tz346125264/p/10029806.html
Longest Substring Without Repeating Characters - T~Z
题意:求一个字符串的最长不含重复字符的子字符串长度; 示例: input:pwwkw output:2 intput:dvdf output:3 分析:还是那句话,每分析一个问题的时候都要问自己,自己的大脑是如何找出正确答案的,将自己的分析转化为代码此题便解 题目要求不含重复字符,且是子字符串; 1
2018-11-27T15:32:00Z
2018-11-27T15:32:00Z
T~Z
https://www.cnblogs.com/tz346125264/
【摘要】题意:求一个字符串的最长不含重复字符的子字符串长度; 示例: input:pwwkw output:2 intput:dvdf output:3 分析:还是那句话,每分析一个问题的时候都要问自己,自己的大脑是如何找出正确答案的,将自己的分析转化为代码此题便解 题目要求不含重复字符,且是子字符串; 1 <a href="https://www.cnblogs.com/tz346125264/p/10029806.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/tz346125264/p/7766643.html
自主建立二叉搜索树(一),插入、建立、查询、最大最小关键字、前驱、后继 - T~Z
目录: 1.什么是二叉搜索树 2.二叉搜索树的由来与作用 3.二叉搜索树的建立 1.什么是二叉搜索树? 二叉搜索树又称为二叉排序树,它或者是一棵空树,或者是具有一下性质的树: 若它的左子树不空,则左子树上所有的结点的值均不大于它根结点的值; 若它的左子树不空,则左子树上所有的结点的值均不小于它根结点
2017-11-03T09:09:00Z
2017-11-03T09:09:00Z
T~Z
https://www.cnblogs.com/tz346125264/
【摘要】目录: 1.什么是二叉搜索树 2.二叉搜索树的由来与作用 3.二叉搜索树的建立 1.什么是二叉搜索树? 二叉搜索树又称为二叉排序树,它或者是一棵空树,或者是具有一下性质的树: 若它的左子树不空,则左子树上所有的结点的值均不大于它根结点的值; 若它的左子树不空,则左子树上所有的结点的值均不小于它根结点 <a href="https://www.cnblogs.com/tz346125264/p/7766643.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/tz346125264/p/7710084.html
宽度优先搜索BFS,求解迷宫问题 - T~Z
宽度优先搜索(BFS)也是搜索的手段之一。它与深度优先搜索类似,从某个状态出发搜索所有可达的状态。 与DFS不同的是搜索的顺序,宽度优先搜索总是先搜索离初始状态近的状态。也就是说,它是按照开始状态 >只需1次转移就可以到达的所有状态 >只需2次转移就可以到达的所有状态 >......,以这样的顺序开
2017-10-22T07:45:00Z
2017-10-22T07:45:00Z
T~Z
https://www.cnblogs.com/tz346125264/
【摘要】宽度优先搜索(BFS)也是搜索的手段之一。它与深度优先搜索类似,从某个状态出发搜索所有可达的状态。 与DFS不同的是搜索的顺序,宽度优先搜索总是先搜索离初始状态近的状态。也就是说,它是按照开始状态 >只需1次转移就可以到达的所有状态 >只需2次转移就可以到达的所有状态 >......,以这样的顺序开 <a href="https://www.cnblogs.com/tz346125264/p/7710084.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/tz346125264/p/7704921.html
深度优先搜索DFS,求解部分和问题及poj2386水洼问题 - T~Z
深度优先搜索(DFS)是搜索的手段之一。它从某个状态开始,不断地转移状态直到无法转移,然后回退到前一步的状态,继续转移到其他状态,如此不断重复,直至找到最终的解。 部分和问题: 给定整数a1、a2、...、an,判断是否可以从中选出若干数,使它们的和恰好为k。 分析: 从a1开始按顺序决定每个数加或
2017-10-21T07:34:00Z
2017-10-21T07:34:00Z
T~Z
https://www.cnblogs.com/tz346125264/
【摘要】深度优先搜索(DFS)是搜索的手段之一。它从某个状态开始,不断地转移状态直到无法转移,然后回退到前一步的状态,继续转移到其他状态,如此不断重复,直至找到最终的解。 部分和问题: 给定整数a1、a2、...、an,判断是否可以从中选出若干数,使它们的和恰好为k。 分析: 从a1开始按顺序决定每个数加或 <a href="https://www.cnblogs.com/tz346125264/p/7704921.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/tz346125264/p/7642186.html
常用集合源码解析(一),ArrayList - T~Z
ArrayList主要用作动态数组,是加强版的Array,可以在添加元素时无需担心容量不够,也支持通过index得到元素。 ArrayList定义: 可以得出ArrayList支持泛型。 先来分析ArrayList的父类和接口: 1. AbstractList:提供List接口的默认实现,个别为抽象
2017-10-10T06:27:00Z
2017-10-10T06:27:00Z
T~Z
https://www.cnblogs.com/tz346125264/
【摘要】ArrayList主要用作动态数组,是加强版的Array,可以在添加元素时无需担心容量不够,也支持通过index得到元素。 ArrayList定义: 可以得出ArrayList支持泛型。 先来分析ArrayList的父类和接口: 1. AbstractList:提供List接口的默认实现,个别为抽象 <a href="https://www.cnblogs.com/tz346125264/p/7642186.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/tz346125264/p/7625568.html
Java中String、StringBuilder、StringBuffer常用源码分析及比较(三):String、StringBuilder、StringBuffer比较 - T~Z
看这篇随笔之前请务必先看前面两章: Java中String、StringBuilder、StringBuffer常用源码分析及比较(一):String源码分析 Java中String、StringBuilder、StringBuffer常用源码分析及比较(二):StringBuilder、Strin
2017-10-04T05:43:00Z
2017-10-04T05:43:00Z
T~Z
https://www.cnblogs.com/tz346125264/
【摘要】看这篇随笔之前请务必先看前面两章: Java中String、StringBuilder、StringBuffer常用源码分析及比较(一):String源码分析 Java中String、StringBuilder、StringBuffer常用源码分析及比较(二):StringBuilder、Strin <a href="https://www.cnblogs.com/tz346125264/p/7625568.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/tz346125264/p/7624907.html
Java中String、StringBuilder、StringBuffer常用源码分析及比较(二):StringBuilder、StringBuffer源码分析 - T~Z
StringBuilder: 一、构造方法: 从代码可知,StringBuilder的不管哪个构造方法,都用到了父类AbstractStringBuilder的构造方法,那么来看一下它的父类AbstractStringBuilder。 成员变量+构造方法: 从该父类就可以看出,StringBuild
2017-10-03T17:32:00Z
2017-10-03T17:32:00Z
T~Z
https://www.cnblogs.com/tz346125264/
【摘要】StringBuilder: 一、构造方法: 从代码可知,StringBuilder的不管哪个构造方法,都用到了父类AbstractStringBuilder的构造方法,那么来看一下它的父类AbstractStringBuilder。 成员变量+构造方法: 从该父类就可以看出,StringBuild <a href="https://www.cnblogs.com/tz346125264/p/7624907.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/tz346125264/p/7622923.html
Java中String、StringBuilder、StringBuffer常用源码分析及比较(一):String源码分析 - T~Z
String: 一、成员变量: 其中字符数组value[]是String用来存贮字符串的容器,换句话说String是使用字符数组实现的,值得注意的是这个字符数组用到了final修饰,意味着其中的字符串一旦在构造方法中初始化将不能被修改,这也是String字符串在做拼接时,要新建很多String对象的
2017-10-03T02:08:00Z
2017-10-03T02:08:00Z
T~Z
https://www.cnblogs.com/tz346125264/
【摘要】String: 一、成员变量: 其中字符数组value[]是String用来存贮字符串的容器,换句话说String是使用字符数组实现的,值得注意的是这个字符数组用到了final修饰,意味着其中的字符串一旦在构造方法中初始化将不能被修改,这也是String字符串在做拼接时,要新建很多String对象的 <a href="https://www.cnblogs.com/tz346125264/p/7622923.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/tz346125264/p/7611351.html
Floyd算法,以动态规划为理论基础,poj1125 - T~Z
Floyd是用于查找图中每一对顶点之间的最短距离,是以动态规划为基础的算法; 基本思想:若现在要求vi到vj的最短路径,设vi到vj的路径dis(vi,vj)即为最短路径,可将dis(vi,vj)与dis(vi,v0,vj)进行比较(其中v0表示vi到vj之间的一个结点,即vi能通过v0到达vj),
2017-09-29T07:43:00Z
2017-09-29T07:43:00Z
T~Z
https://www.cnblogs.com/tz346125264/
【摘要】Floyd是用于查找图中每一对顶点之间的最短距离,是以动态规划为基础的算法; 基本思想:若现在要求vi到vj的最短路径,设vi到vj的路径dis(vi,vj)即为最短路径,可将dis(vi,vj)与dis(vi,v0,vj)进行比较(其中v0表示vi到vj之间的一个结点,即vi能通过v0到达vj), <a href="https://www.cnblogs.com/tz346125264/p/7611351.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/tz346125264/p/7575675.html
矩阵求连续递减序列个数,动态规划初级,递归,poj1088 - T~Z
题目描述: Description Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael想知道载一个区域中最长底滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例
2017-09-22T08:46:00Z
2017-09-22T08:46:00Z
T~Z
https://www.cnblogs.com/tz346125264/
【摘要】题目描述: Description Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael想知道载一个区域中最长底滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例 <a href="https://www.cnblogs.com/tz346125264/p/7575675.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/tz346125264/p/7568335.html
最大子矩阵,最大连续子数组进阶,动态规划初级,poj1050 - T~Z
题目描述:现给出一个N*N矩阵,要求求出拥有最大和的子矩阵的和。 例如: 这样的一个矩阵,最大子矩阵的和为15; 此题可以让人联想到求最大连续子数组,求最大子数组在上一篇文章中http://www.cnblogs.com/tz346125264/p/7560708.html。 分析:最大子矩阵可以看
2017-09-21T06:11:00Z
2017-09-21T06:11:00Z
T~Z
https://www.cnblogs.com/tz346125264/
【摘要】题目描述:现给出一个N*N矩阵,要求求出拥有最大和的子矩阵的和。 例如: 这样的一个矩阵,最大子矩阵的和为15; 此题可以让人联想到求最大连续子数组,求最大子数组在上一篇文章中http://www.cnblogs.com/tz346125264/p/7560708.html。 分析:最大子矩阵可以看 <a href="https://www.cnblogs.com/tz346125264/p/7568335.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/tz346125264/p/7560708.html
最大连续子数组,动态规划基础 - T~Z
动规思想: 状态转移方程:temp[i] = (temp[i-1]>0?temp[i-1]:0)+a[i]; temp[i]表示以第i个数字结尾的子数组的最大和 分析题目可知:temp[i]由两种情况: 1.当以第(i-1)个数字为结尾的子数组中最大和temp(i-1)小于0时,如果把这个负数和第i
2017-09-20T03:55:00Z
2017-09-20T03:55:00Z
T~Z
https://www.cnblogs.com/tz346125264/
【摘要】动规思想: 状态转移方程:temp[i] = (temp[i-1]>0?temp[i-1]:0)+a[i]; temp[i]表示以第i个数字结尾的子数组的最大和 分析题目可知:temp[i]由两种情况: 1.当以第(i-1)个数字为结尾的子数组中最大和temp(i-1)小于0时,如果把这个负数和第i <a href="https://www.cnblogs.com/tz346125264/p/7560708.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/tz346125264/p/7544406.html
poj1018,动态规划初级,状态转移方程 - T~Z
开场先来一段百度百科: 动态规划中本阶段的状态往往是上一阶段状态和上一阶段决策的结果。如果给定了第K阶段的状态Sk以及决策uk(Sk),则第K+1阶段的状态Sk+1也就完全确定。也就是说Sk+1与Sk,uk之间存在一种明确的数量对应关系,记为Tk(Sk,uk),即有Sk+1= Tk(Sk,uk)。
2017-09-19T08:14:00Z
2017-09-19T08:14:00Z
T~Z
https://www.cnblogs.com/tz346125264/
【摘要】开场先来一段百度百科: 动态规划中本阶段的状态往往是上一阶段状态和上一阶段决策的结果。如果给定了第K阶段的状态Sk以及决策uk(Sk),则第K+1阶段的状态Sk+1也就完全确定。也就是说Sk+1与Sk,uk之间存在一种明确的数量对应关系,记为Tk(Sk,uk),即有Sk+1= Tk(Sk,uk)。 <a href="https://www.cnblogs.com/tz346125264/p/7544406.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/tz346125264/p/7436492.html
构建队列,数组版本 - T~Z
队列作为基本的数据结构,是每个coder所必须掌握的。 队列在逻辑上就像是一条打饭的长队,排在前面的先打到饭(先进先出)。 这里用一个数组用以构造一个队列,并设置两个指向,head指向队首,tail指向队尾,初始状态是head与tail指向同一位置(队列为空) 队列有两个操作:入队与出队。 1.入队
2017-08-26T14:26:00Z
2017-08-26T14:26:00Z
T~Z
https://www.cnblogs.com/tz346125264/
【摘要】队列作为基本的数据结构,是每个coder所必须掌握的。 队列在逻辑上就像是一条打饭的长队,排在前面的先打到饭(先进先出)。 这里用一个数组用以构造一个队列,并设置两个指向,head指向队首,tail指向队尾,初始状态是head与tail指向同一位置(队列为空) 队列有两个操作:入队与出队。 1.入队 <a href="https://www.cnblogs.com/tz346125264/p/7436492.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/tz346125264/p/7425812.html
快速排序,排序基础 - T~Z
快速排序是目前平均性能最好的排序方式,被作为数组排序首选。 基本思想:将一个数组分为左右两部分以q为界,左部分小于q,右部分大于q;接下来分治策略,将左右两部分继续按照这个规则划分,直至不能划分,该数组便排序完毕。 关键:如何划分左右部分?q该取哪个值?(恕我愚钝,算法导论上的做法没看懂,于是逼着自
2017-08-24T15:20:00Z
2017-08-24T15:20:00Z
T~Z
https://www.cnblogs.com/tz346125264/
【摘要】快速排序是目前平均性能最好的排序方式,被作为数组排序首选。 基本思想:将一个数组分为左右两部分以q为界,左部分小于q,右部分大于q;接下来分治策略,将左右两部分继续按照这个规则划分,直至不能划分,该数组便排序完毕。 关键:如何划分左右部分?q该取哪个值?(恕我愚钝,算法导论上的做法没看懂,于是逼着自 <a href="https://www.cnblogs.com/tz346125264/p/7425812.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/tz346125264/p/7390166.html
堆排序,优先队列,排序基础 - T~Z
堆排序虽然在性能效率上不及快速排序,但由于优先队列的使用十分广泛,所以堆排序依然是基础中比较重要的部分。 堆的实质其实是一个数组,不过其逻辑结构则是以一颗近似完全二叉树的形式存在的,如图 堆(最大堆)的性质: 1.父结点一定大于子节点(最小堆相反) 2.以每个子结点为根结点的树也是堆 由于近似完全二
2017-08-18T08:00:00Z
2017-08-18T08:00:00Z
T~Z
https://www.cnblogs.com/tz346125264/
【摘要】堆排序虽然在性能效率上不及快速排序,但由于优先队列的使用十分广泛,所以堆排序依然是基础中比较重要的部分。 堆的实质其实是一个数组,不过其逻辑结构则是以一颗近似完全二叉树的形式存在的,如图 堆(最大堆)的性质: 1.父结点一定大于子节点(最小堆相反) 2.以每个子结点为根结点的树也是堆 由于近似完全二 <a href="https://www.cnblogs.com/tz346125264/p/7390166.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/tz346125264/p/7372393.html
最大子数组问题,分治策略基础,百度面试题 - T~Z
问题描述:这个问题源自《算法导论》中基础部分分治策略讲解,即给出一支股票近15天价格表,要求求出买进卖出获得的最大值及买进时刻卖出时刻。 可百度面试问的没那么简单,要求求出最大收益及次大收益(包括买进卖出时刻),且手上最多只能有一支股票即求出的最大子数组、次大子数组不能重合。(当时直接懵逼)(这次只
2017-08-16T03:17:00Z
2017-08-16T03:17:00Z
T~Z
https://www.cnblogs.com/tz346125264/
【摘要】问题描述:这个问题源自《算法导论》中基础部分分治策略讲解,即给出一支股票近15天价格表,要求求出买进卖出获得的最大值及买进时刻卖出时刻。 可百度面试问的没那么简单,要求求出最大收益及次大收益(包括买进卖出时刻),且手上最多只能有一支股票即求出的最大子数组、次大子数组不能重合。(当时直接懵逼)(这次只 <a href="https://www.cnblogs.com/tz346125264/p/7372393.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/tz346125264/p/7341143.html
硬币找零问题,动态规划基础,百度面试题 - T~Z
问题描述:给出几种面值的硬币,要求用这几种硬币找零出所给零钱数,用的硬币数要最少。 过去我们用过贪心法解决此类问题,包括本人在百度面试时,也是用的贪心法(面试官对这个解答不满意),贪心法只适用于硬币特殊的情况下(1,3,5),如果现在硬币的面值为10,7,3,1,要求给出21的找零方案,那么贪心会给
2017-08-10T12:00:00Z
2017-08-10T12:00:00Z
T~Z
https://www.cnblogs.com/tz346125264/
【摘要】问题描述:给出几种面值的硬币,要求用这几种硬币找零出所给零钱数,用的硬币数要最少。 过去我们用过贪心法解决此类问题,包括本人在百度面试时,也是用的贪心法(面试官对这个解答不满意),贪心法只适用于硬币特殊的情况下(1,3,5),如果现在硬币的面值为10,7,3,1,要求给出21的找零方案,那么贪心会给 <a href="https://www.cnblogs.com/tz346125264/p/7341143.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/tz346125264/p/7131232.html
poj1083,基本互斥问题 - T~Z
题意:南北两侧各有200个房间,两侧房间之间有一个走廊 现在需要把桌子从这400个房间之中搬进搬出,每一张桌子需要10分钟时间,如果走廊因为有桌子搬运而占用,则需等待,求共需多少时间(分钟)将桌子搬完 分析:由于走廊跨越200个房间,设置数组大小为200的数组,如从x出发搬到y,则把x到y的走廊全部
2017-07-07T03:20:00Z
2017-07-07T03:20:00Z
T~Z
https://www.cnblogs.com/tz346125264/
【摘要】题意:南北两侧各有200个房间,两侧房间之间有一个走廊 现在需要把桌子从这400个房间之中搬进搬出,每一张桌子需要10分钟时间,如果走廊因为有桌子搬运而占用,则需等待,求共需多少时间(分钟)将桌子搬完 分析:由于走廊跨越200个房间,设置数组大小为200的数组,如从x出发搬到y,则把x到y的走廊全部 <a href="https://www.cnblogs.com/tz346125264/p/7131232.html" target="_blank">阅读全文</a>