<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[wangche320的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/wangche320</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; wangche320]]></copyright><item><title><![CDATA[库存清理算法]]></title><link>https://blog.youkuaiyun.com/wangche320/article/details/50996873</link><guid>https://blog.youkuaiyun.com/wangche320/article/details/50996873</guid><author>wangche320</author><pubDate>Mon, 28 Mar 2016 12:11:25 +0800</pubDate><description><![CDATA[前面已经把商品库存按处理方式主要分为以下几种normal sale,  return,  markdown, liquidation。
现在明确一下，算法是以追求收益最大化为目标，也就是当前手里的这些商品，不考虑进价的情况下，如果能够在未来一定时间内折算成现金，这个现金要是 最大的。现在已知库房有某种商品N个，它是不是除了正常销售之外还有多的M个，这M个商品是不是都是健康的，如果其中有不健康的，]]></description><category></category></item><item><title><![CDATA[冗余库存的清理方式]]></title><link>https://blog.youkuaiyun.com/wangche320/article/details/50996872</link><guid>https://blog.youkuaiyun.com/wangche320/article/details/50996872</guid><author>wangche320</author><pubDate>Mon, 28 Mar 2016 12:10:55 +0800</pubDate><description><![CDATA[不健康的商品库存，一般有以下几种方式进行清理，
 
1 退货，return。
2 降价，markdown。
3 清算，liquidation。
 
Return：退给供货商。
1）能不能退，当初合同里有没有写这一条款。
2）退一个能从供货商那里拿回来多少钱。
3）退一个我需要花多少钱在人力运输成本上。
4）从我提出退货请求到出库房需要多长时间，期间我还是要承担holding的花]]></description><category></category></item><item><title><![CDATA[不健康库存的鉴别]]></title><link>https://blog.youkuaiyun.com/wangche320/article/details/50996871</link><guid>https://blog.youkuaiyun.com/wangche320/article/details/50996871</guid><author>wangche320</author><pubDate>Mon, 28 Mar 2016 12:10:31 +0800</pubDate><description><![CDATA[从上文可以看出，并不是除了当周要卖的，多余的都是不健康的。多出的那些库存里面其中有一部分是为了满足未来数周的正常销售而选择在当前保留的。所以overstock的库存分为两部分，一部分是健康的，另一部分是不健康的。当然，理想情况下，每周要卖多少，我就进多少货，做到零冗余，这样不会有任何多余的损耗。实际上，
1 无法做到对实际销量的精准预测，通常会有个估计值，或者销量预测的结果是个概率分布。
2 ]]></description><category></category></item><item><title><![CDATA[商品库存的基本概念]]></title><link>https://blog.youkuaiyun.com/wangche320/article/details/50996868</link><guid>https://blog.youkuaiyun.com/wangche320/article/details/50996868</guid><author>wangche320</author><pubDate>Mon, 28 Mar 2016 12:09:59 +0800</pubDate><description><![CDATA[如果某种商品的库存量过多，overstock，那么可能存在问题。比如一定时期内卖不出去，会导致
1 占用现金流。这个很重要，一件商品售价100块钱，在年初的时候卖出去和在年末卖出去的概念是大不一样的。理解成现金也是有个折旧率的。
2 占用库房空间，浪费租金成本。
3 消耗不必要的人力物力水电。
4 间接影响其他商品的备货。
所以控制商品库存不超过合理的数量非常重要，可以节省成本，降低运营]]></description><category></category></item><item><title><![CDATA[不断积累 勇闯高峰]]></title><link>https://blog.youkuaiyun.com/wangche320/article/details/49660247</link><guid>https://blog.youkuaiyun.com/wangche320/article/details/49660247</guid><author>wangche320</author><pubDate>Thu, 05 Nov 2015 11:17:41 +0800</pubDate><description><![CDATA[以下是平时的点滴记录：]]></description><category></category></item><item><title><![CDATA[Java知识点（更新）]]></title><link>https://blog.youkuaiyun.com/wangche320/article/details/44620743</link><guid>https://blog.youkuaiyun.com/wangche320/article/details/44620743</guid><author>wangche320</author><pubDate>Wed, 25 Mar 2015 18:28:17 +0800</pubDate><description><![CDATA[1  IO 与NIO
其实就是几个主要的类：
Buffers ：IO没有缓冲，是面向流的。NIO有缓冲，可以提供更加灵活的API。
Channels ：IO没有channel，一个线程管理一个连接，是阻塞式的，连接中当前没有数据，线程阻塞。NIO提供channel，可以让一个线程同时管理多个连接或者读取多个文件，是非阻塞的。
Selector：通过selector来选择当前需要处理的cha]]></description><category></category></item><item><title><![CDATA[若干整数组成的最小值]]></title><link>https://blog.youkuaiyun.com/wangche320/article/details/43892627</link><guid>https://blog.youkuaiyun.com/wangche320/article/details/43892627</guid><author>wangche320</author><pubDate>Fri, 20 Feb 2015 23:26:26 +0800</pubDate><description><![CDATA[一组正整数，每个都要用上，把它们首尾拼接，可以组成一个新的整数，问最小的整数怎么拼接。 
12和23： 
1223 < 2312思路可以是这样： 
实际转化为字符串问题，每个整数可以表示成字符数组，将它们纵向排列成一个矩阵，空的位置填-1. 
32, 546, 3251，274， 54， 541, 1234， 336, 58先排序第一行，再排序第二行，依次往下。每次分别按横轴上字符的asc码从小到大]]></description><category></category></item><item><title><![CDATA[矩阵杂项]]></title><link>https://blog.youkuaiyun.com/wangche320/article/details/43888627</link><guid>https://blog.youkuaiyun.com/wangche320/article/details/43888627</guid><author>wangche320</author><pubDate>Fri, 20 Feb 2015 12:25:50 +0800</pubDate><description><![CDATA[n个长度为m的整数序列，从每个序列中任意取出一个数，将这m个数相加，得到一个和。问从所有这些和里面取出前k大。


先考虑两个序列的情况，将这两个序列从大到小分别排序，然后做成矩阵，从左上到右下递减，则可以从左上角开始按斜线输出前k大，最后一层可能需要两两比较一下。更快一点的做法，输出是1,3,5,7.....等差数列，可以直接利用等差数列求和公式，快速定位到最后一层，再比较。
多个序列，]]></description><category></category></item><item><title><![CDATA[两个海量文件找重复项]]></title><link>https://blog.youkuaiyun.com/wangche320/article/details/43888583</link><guid>https://blog.youkuaiyun.com/wangche320/article/details/43888583</guid><author>wangche320</author><pubDate>Fri, 20 Feb 2015 11:56:13 +0800</pubDate><description><![CDATA[两个海量文件，每个文件都存储了100亿个URL，32位机器上计算两者重复的URL。想到另外一个问题，如何在一个海量URL文件中，使用32位机器找出重复次数最多的那个URL。这个问题一般有几个思路，1 遍历文件，对每个URL 哈希取模，结果存入多个小文件，再对每个小文件读入内存哈希计数得到次数最多的那一个，最后从不同文件中选出最大的那一个。2因为内存受限，考虑到URL具有很强的规则性，比如http(f]]></description><category></category></item><item><title><![CDATA[非递归遍历二叉树]]></title><link>https://blog.youkuaiyun.com/wangche320/article/details/43879399</link><guid>https://blog.youkuaiyun.com/wangche320/article/details/43879399</guid><author>wangche320</author><pubDate>Thu, 19 Feb 2015 00:46:14 +0800</pubDate><description><![CDATA[public static void postOrder(Node root){
        //check
        Stack stack = new Stack();
        Node p = root;
        while(p != null){
            stack.push(p);
            if(p.left != null){]]></description><category></category></item><item><title><![CDATA[输出螺旋矩阵]]></title><link>https://blog.youkuaiyun.com/wangche320/article/details/43865991</link><guid>https://blog.youkuaiyun.com/wangche320/article/details/43865991</guid><author>wangche320</author><pubDate>Tue, 17 Feb 2015 12:50:42 +0800</pubDate><description><![CDATA[从外向内按序号输出矩阵。1 先确定有几个嵌套矩形，即count值， 比如图中矩形只有一个，矩形的个数由短边确定。从外向内处理嵌套矩形。2 确定矩形顶点坐标公式。用k从外向内给矩形编号，从k=0开始编号。 
k    public static void run(int[][] a, int n, int m){
        int min = n>m ? m : n;
        int c]]></description><category></category></item><item><title><![CDATA[字符串的相似度]]></title><link>https://blog.youkuaiyun.com/wangche320/article/details/43852919</link><guid>https://blog.youkuaiyun.com/wangche320/article/details/43852919</guid><author>wangche320</author><pubDate>Mon, 16 Feb 2015 17:47:25 +0800</pubDate><description><![CDATA[用最少的步骤将源字符串变成目标字符串，可选的操作可以是 
1 加一个 
2 减一个 
3 修改 
操作次数，叫做这两个字符串的编辑距离，即相似度。动态规划： 
设f(i, j) 为源字符串的前i个字符与目标字符串的前j个字符的子串距离，则 
f(i, j) = min{ 
f(i, j-1) + 1, 加一个 
f(i-1, j) + 1, 减一个 
f(i-1, j-1) + g(i, j) 修改]]></description><category></category></item><item><title><![CDATA[输出满足2a=b的数对]]></title><link>https://blog.youkuaiyun.com/wangche320/article/details/43852555</link><guid>https://blog.youkuaiyun.com/wangche320/article/details/43852555</guid><author>wangche320</author><pubDate>Mon, 16 Feb 2015 16:15:50 +0800</pubDate><description><![CDATA[给定一数组，输出满足2a=b（a，b代表数组中的数）的数对，要求时间复杂度尽量低。二分搜索是很显然的，不过这题主要考的还是看你仔不仔细。 
1 有重复数据怎么办。 
2 如果重复数据是0呢。 
3 正数和负数混合怎么办。要求时间复杂度越低越好，那么尽量减少数据量，所以要去重复数据，如果重复数据是0，输出(0,0)，正负数分开排序和遍历，两个线程处理。即使单线程，因为nlgn非线性，二分数据也有助于时]]></description><category></category></item><item><title><![CDATA[jvm内存]]></title><link>https://blog.youkuaiyun.com/wangche320/article/details/43852087</link><guid>https://blog.youkuaiyun.com/wangche320/article/details/43852087</guid><author>wangche320</author><pubDate>Mon, 16 Feb 2015 15:12:02 +0800</pubDate><description><![CDATA[主要内存区域： 
1 堆。 
线程共享，new的对象实例，新代和老代。2 栈 
线程私有，基本类型，方法调用时的栈帧(frame)。3 方法区 
线程共享，class对象，static数据，常量，方法定义。也叫永久代。]]></description><category></category></item><item><title><![CDATA[石头合并得分]]></title><link>https://blog.youkuaiyun.com/wangche320/article/details/43834617</link><guid>https://blog.youkuaiyun.com/wangche320/article/details/43834617</guid><author>wangche320</author><pubDate>Sun, 15 Feb 2015 16:04:10 +0800</pubDate><description><![CDATA[直线上n堆石头，个数不等，每次可以合并相邻的两堆石头，并把合并后的石头个数作为此次得分，问最大得分是多少？方法1： 
 递归,自顶向下，注意定义二维数组，空间换时间。public class Stone {
    //方法1  递归  
    private int[][] value;  
    private int[][] sum;      public Stone(int[] a){]]></description><category></category></item><item><title><![CDATA[栈和队列]]></title><link>https://blog.youkuaiyun.com/wangche320/article/details/43817845</link><guid>https://blog.youkuaiyun.com/wangche320/article/details/43817845</guid><author>wangche320</author><pubDate>Sat, 14 Feb 2015 16:15:40 +0800</pubDate><description><![CDATA[public class Queue {    private Element head;
    private Element tail;
    public int size;    public void enqueue(Element e){
        if(tail == null){
            head = e;
            tail = e;]]></description><category></category></item><item><title><![CDATA[二叉树路径和]]></title><link>https://blog.youkuaiyun.com/wangche320/article/details/43793569</link><guid>https://blog.youkuaiyun.com/wangche320/article/details/43793569</guid><author>wangche320</author><pubDate>Fri, 13 Feb 2015 13:47:34 +0800</pubDate><description><![CDATA[public static void route(Node node, int n, Stack stack){
    if(node == null)   return;
    stack.push(node);
    if(node.left==null && node.right==null){
        if(stack.sum == n){
            System]]></description><category></category></item><item><title><![CDATA[轮流取硬币]]></title><link>https://blog.youkuaiyun.com/wangche320/article/details/43792677</link><guid>https://blog.youkuaiyun.com/wangche320/article/details/43792677</guid><author>wangche320</author><pubDate>Fri, 13 Feb 2015 12:02:41 +0800</pubDate><description><![CDATA[问题： 
直线上一排硬币，币额不等，某人与对手轮流取硬币，一次取一枚，只能从头或者尾取，假设他开始取第一枚，看谁最后拿的钱最多。问 
 * 1）有没有办法保证他不败。 
 * 2）他最多可以拿多少钱。怎么才能不败？原理在于第一个取硬币的人可以控制对手的行为，给硬币从1开始顺序编号，分别计算单数硬币和双数硬币的总的价值，看哪一个大。但是这个值并不是最大值，要取到最多的钱，可以考虑动态规划。 
假设位置]]></description><category></category></item><item><title><![CDATA[系统设计]]></title><link>https://blog.youkuaiyun.com/wangche320/article/details/43487367</link><guid>https://blog.youkuaiyun.com/wangche320/article/details/43487367</guid><author>wangche320</author><pubDate>Wed, 04 Feb 2015 16:00:12 +0800</pubDate><description><![CDATA[系统分析，业务建模，系统指标。
系统设计，结合技术框架，映射业务模型。
系统实现，代码实现。


DDD直接由业务需求到领域模型，合并分析与设计。]]></description><category></category></item><item><title><![CDATA[二：Lucene的总体架构]]></title><link>https://blog.youkuaiyun.com/wangche320/article/details/9292363</link><guid>https://blog.youkuaiyun.com/wangche320/article/details/9292363</guid><author>wangche320</author><pubDate>Wed, 10 Jul 2013 16:38:32 +0800</pubDate><description><![CDATA[Lucene总的来说是：

一个高效的，可扩展的，全文检索库。全部用Java实现，无须配置。仅支持纯文本文件的索引(Indexing)和搜索(Search)。不负责由其他格式的文件抽取纯文本文件，或从网络中抓取文件的过程。

在Lucene in action中，Lucene 的构架和过程如下图，






说明Lucene 是有索引和搜索的两个过程，包含索引创建，索引，搜]]></description><category></category></item></channel></rss>