<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[richardzrc的博客搬家了--->richardzhang.info]]></title><description><![CDATA[但偏偏，风渐渐，把距离吹得好远]]></description><link>https://blog.youkuaiyun.com/richardzrc</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; richardzrc]]></copyright><item><title><![CDATA[remove ele when iterative hashmap]]></title><link>https://blog.youkuaiyun.com/richardzrc/article/details/48109633</link><guid>https://blog.youkuaiyun.com/richardzrc/article/details/48109633</guid><author>richardzrc</author><pubDate>Sun, 30 Aug 2015 21:28:30 +0800</pubDate><description><![CDATA[C++ 遍历hashmap时候删除元素是很痛苦的，Java有concurrent hashmap, C++auto ： 似乎用不了，
只能采用erase获取next iterator的方法，因此这种方法尽量加一个元素来标记元素是否删除更好，看到C++的不好地方了


bool dfs(int i){
    if(v[i]) return 0;
    v[i]=1;
    for(au]]></description><category></category></item><item><title><![CDATA[Alien Order]]></title><link>https://blog.youkuaiyun.com/richardzrc/article/details/48108667</link><guid>https://blog.youkuaiyun.com/richardzrc/article/details/48108667</guid><author>richardzrc</author><pubDate>Sun, 30 Aug 2015 20:15:44 +0800</pubDate><description><![CDATA[https://leetcode.com/problems/alien-dictionary/


单词按照一定次序排序，推导出原始顺序，典型的toposort，非常好的题目和重要的算法。


还是习惯炒肉说的基于indegree的bfs，学神的dfs总觉得别扭。当年老师教的静态链表太差了，太麻烦


我写了两种写法，再生成图的时候，一种是从比较上下两个单词的第一次不同的单词来生]]></description><category></category></item><item><title><![CDATA[逻辑代码题]]></title><link>https://blog.youkuaiyun.com/richardzrc/article/details/47016175</link><guid>https://blog.youkuaiyun.com/richardzrc/article/details/47016175</guid><author>richardzrc</author><pubDate>Thu, 23 Jul 2015 08:11:01 +0800</pubDate><description><![CDATA[判断a2*b2 和 a3* b3 是否可以装入a1*b1


逻辑代码基本功，


漏考虑了一点，两种形状都要考虑，而不是如果大小符合第一种，就不考虑第二种形状了，导致WA了，也没有人hack我，估计hack了，也难想到错误


int can(int a1, int b1, int a2, int b2){
    return (a1<=a2 && b1<=b2) || (a]]></description><category></category></item><item><title><![CDATA[Leetcode新题]]></title><link>https://blog.youkuaiyun.com/richardzrc/article/details/47013373</link><guid>https://blog.youkuaiyun.com/richardzrc/article/details/47013373</guid><author>richardzrc</author><pubDate>Thu, 23 Jul 2015 00:41:21 +0800</pubDate><description><![CDATA[算一个数组里面k个元素的滑动窗口的最值
单调队列 不同于单调栈
单调队列模板题
class Solution {
public:
    vector maxSlidingWindow(vector& a, int k) {
        vector ans;
        int n=a.size(), i;
        deque> q;
        if(!k) retu]]></description><category></category></item><item><title><![CDATA[Basic Caculator]]></title><link>https://blog.youkuaiyun.com/richardzrc/article/details/46992455</link><guid>https://blog.youkuaiyun.com/richardzrc/article/details/46992455</guid><author>richardzrc</author><pubDate>Tue, 21 Jul 2015 21:37:50 +0800</pubDate><description><![CDATA[Basic caculator


这题有几种思路，都不是很简单，这就是为啥计算机喜欢用波兰和你波兰，因为求值非常简单，已经体现了运算符优先级了。


1. 运算符优先级表，非常麻烦，需要n*n的表格
2. 用火车调度场算法将中缀边后缀，dijstra发明的，算法细节多，不容易写对
3. 下面的算法，前提是只有+-()


class Solution {
public:
 ]]></description><category></category></item><item><title><![CDATA[vector<string>]]></title><link>https://blog.youkuaiyun.com/richardzrc/article/details/46976251</link><guid>https://blog.youkuaiyun.com/richardzrc/article/details/46976251</guid><author>richardzrc</author><pubDate>Mon, 20 Jul 2015 23:39:50 +0800</pubDate><description><![CDATA[给定vector 判断是否是 可以首尾相连成一个环，相邻两个串的头和尾字符一样


class Solution{
    public:
    int n;
    vector v;
    vector vs_;
    unordered_map> um;
    bool Circle(vector vs){
        int save=0;
        for(int]]></description><category></category></item><item><title><![CDATA[判断图是否是二分图]]></title><link>https://blog.youkuaiyun.com/richardzrc/article/details/46956825</link><guid>https://blog.youkuaiyun.com/richardzrc/article/details/46956825</guid><author>richardzrc</author><pubDate>Sun, 19 Jul 2015 18:32:15 +0800</pubDate><description><![CDATA[之前GCJ2014practice遇到过，当时推我google的liuchenheng大神说这个是最基础的题，
如果不会，就别来面了。我还真不会，可见有多弱。然后EMC summer campus时遇到USTC的李晨讯，看到输入，我一看就知道这题，他说他也写了半天才A的。


看来这种基础题需要熟练了，不仅要写出来，而且要快！


https://code.google.com/co]]></description><category></category></item><item><title><![CDATA[刻录镜像]]></title><link>https://blog.youkuaiyun.com/richardzrc/article/details/46854907</link><guid>https://blog.youkuaiyun.com/richardzrc/article/details/46854907</guid><author>richardzrc</author><pubDate>Sun, 12 Jul 2015 23:41:37 +0800</pubDate><description><![CDATA[目测UltraISO软件不升级 导致Ubuntu14.04写入失败，只有EFI文件夹


升级一下Ultraiso 就好了 我用universal installers似乎启动之后光标一直跳


看来还是有时候需要升级软件]]></description><category></category></item><item><title><![CDATA[题目]]></title><link>https://blog.youkuaiyun.com/richardzrc/article/details/46781829</link><guid>https://blog.youkuaiyun.com/richardzrc/article/details/46781829</guid><author>richardzrc</author><pubDate>Tue, 07 Jul 2015 00:12:04 +0800</pubDate><description><![CDATA[Question 2. Find distance between two given keys of a Binary Tree, no parent pointers are given. Distance between two nodes is the minimum number of edges to be traversed to reach one node from other.]]></description><category></category></item><item><title><![CDATA[数据流的median]]></title><link>https://blog.youkuaiyun.com/richardzrc/article/details/46781557</link><guid>https://blog.youkuaiyun.com/richardzrc/article/details/46781557</guid><author>richardzrc</author><pubDate>Mon, 06 Jul 2015 23:54:47 +0800</pubDate><description><![CDATA[http://www.lintcode.com/en/problem/data-stream-median/

数据流的中位数，两个优先队列，或者两个堆，题目定义是靠前的一个数为median
struct Node1{
    int val;
    bool operator<(Node1 n) const{
        return val<n.val;
    }
};
stru]]></description><category></category></item><item><title><![CDATA[woodcut]]></title><link>https://blog.youkuaiyun.com/richardzrc/article/details/46780055</link><guid>https://blog.youkuaiyun.com/richardzrc/article/details/46780055</guid><author>richardzrc</author><pubDate>Mon, 06 Jul 2015 22:28:02 +0800</pubDate><description><![CDATA[http://www.lintcode.com/en/problem/wood-cut/#


二分答案，贪心验证，具有单调性


class Solution {
public:
    /**
     *@param L: Given n pieces of wood with length L[i]
     *@param k: An integer
     *return]]></description><category></category></item><item><title><![CDATA[power of two]]></title><link>https://blog.youkuaiyun.com/richardzrc/article/details/46779037</link><guid>https://blog.youkuaiyun.com/richardzrc/article/details/46779037</guid><author>richardzrc</author><pubDate>Mon, 06 Jul 2015 21:00:09 +0800</pubDate><description><![CDATA[power-of-two


class Solution {
public:
    bool isPowerOfTwo(int n) {
        return n>=1 && !(n&(n-1));
    }
};


n=10000***000, 
 n&(n-1)=0


是这个方法的核心]]></description><category></category></item><item><title><![CDATA[Jump gameII]]></title><link>https://blog.youkuaiyun.com/richardzrc/article/details/46706073</link><guid>https://blog.youkuaiyun.com/richardzrc/article/details/46706073</guid><author>richardzrc</author><pubDate>Wed, 01 Jul 2015 09:00:00 +0800</pubDate><description><![CDATA[leetcode jump gameII
看了题解，用BFS是比较好的思路，一层表示当前步能到的节点，curmax表示最远的，和贪心有异曲同工之妙
class Solution {
public:
    int jump(vector& a) {
        int n=a.size();
        if(n<=1) return 0;
        int i=0, level]]></description><category></category></item><item><title><![CDATA[BST数据结构题]]></title><link>https://blog.youkuaiyun.com/richardzrc/article/details/46692351</link><guid>https://blog.youkuaiyun.com/richardzrc/article/details/46692351</guid><author>richardzrc</author><pubDate>Tue, 30 Jun 2015 10:44:03 +0800</pubDate><description><![CDATA[给定BST，修改BST，使得每个点都是大于他的结点的值之和
关键是这题递归参数怎么设计，每个点比他大的有两快，一个是右子书(如果有的话)，另一个是祖先里面比他大的，如果直接用这两个的话，找不到递归结构。
应该设计第一个参数是祖先比他大的节点和，第二个参数是子树的和，包括自身。


struct Node
{
  int val;
  Node* left, *right;
};

cla]]></description><category></category></item><item><title><![CDATA[学车走模拟考场]]></title><link>https://blog.youkuaiyun.com/richardzrc/article/details/46571935</link><guid>https://blog.youkuaiyun.com/richardzrc/article/details/46571935</guid><author>richardzrc</author><pubDate>Sat, 20 Jun 2015 08:51:53 +0800</pubDate><description><![CDATA[周五走了模拟考场，最后一遍通过，前三遍各种大问题。


三个地方打方向，启动，侧方位出库，坡道定点。




教练车加坐垫。


先打灯。左拐。


侧方位特别当心的是突起 对齐 箭头左端左侧1-2cm处，前面一个较难，因为需要突然拐弯调整，一定要更加慢速。
注意右侧后视镜与白线30cm左右，川字形状。然后肩膀与蓝线白线对齐。同时还可以看左侧车门线与白线对齐。

]]></description><category></category></item><item><title><![CDATA[科目二实践笔记]]></title><link>https://blog.youkuaiyun.com/richardzrc/article/details/46552821</link><guid>https://blog.youkuaiyun.com/richardzrc/article/details/46552821</guid><author>richardzrc</author><pubDate>Thu, 18 Jun 2015 21:37:19 +0800</pubDate><description><![CDATA[启动要打左转向灯(向下)，防止跳转，左手按住，右手方向盘




侧方位停车


右转到侧方位停车
(注意自己是抽签到哪个车队就是哪个车。这里面两个不是任意选，而是必须严格按照编号来。
如果分到前面的话，就要提前准备好，对齐突起)


车辆左右小修，指到突起对齐箭头左侧(这里如果是没有做垫，需要箭头左侧靠左l2cm, 然后车头过了箭头，)
然后左侧看黄线，或者蓝线，对齐]]></description><category></category></item><item><title><![CDATA[hackerrank maxsum mod]]></title><link>https://blog.youkuaiyun.com/richardzrc/article/details/46494881</link><guid>https://blog.youkuaiyun.com/richardzrc/article/details/46494881</guid><author>richardzrc</author><pubDate>Sun, 14 Jun 2015 21:46:03 +0800</pubDate><description><![CDATA[https://www.hackerrank.com/challenges/maximise-sum/submissions/code/12028158


hackerrank 子数组和模m的最大值


时间复杂度nlgn, 主要是证明一点，presum[i]-presum[j] 对于0]]></description><category></category></item><item><title><![CDATA[统计学习第一发]]></title><link>https://blog.youkuaiyun.com/richardzrc/article/details/46494559</link><guid>https://blog.youkuaiyun.com/richardzrc/article/details/46494559</guid><author>richardzrc</author><pubDate>Sun, 14 Jun 2015 21:16:13 +0800</pubDate><description><![CDATA[博神，著名机器学习专家，擅长各种优化问题，求导，


内容包括三块：
1. 统计学习问题
2. 感知机
3. SVM]]></description><category></category></item><item><title><![CDATA[算素因子种类数个个数的题目]]></title><link>https://blog.youkuaiyun.com/richardzrc/article/details/46487269</link><guid>https://blog.youkuaiyun.com/richardzrc/article/details/46487269</guid><author>richardzrc</author><pubDate>Sun, 14 Jun 2015 01:13:11 +0800</pubDate><description><![CDATA[素因子种类数：
对于一个n，他的素因子总类数 有多少？ Facebook Hackercup Round1 Homework题，10pts


运用筛法，然后P[j]=i ->P[j]++


int GetPrimeFactorTypeTimes(int n)
{
    memset(P , 0, sizeof P);
    for(int i=2;2*i<=n;i++)]]></description><category></category></item><item><title><![CDATA[最大子数组和新的解法-前缀和]]></title><link>https://blog.youkuaiyun.com/richardzrc/article/details/46468021</link><guid>https://blog.youkuaiyun.com/richardzrc/article/details/46468021</guid><author>richardzrc</author><pubDate>Fri, 12 Jun 2015 09:53:49 +0800</pubDate><description><![CDATA[今天看了曹博的动态规划视频，发现又有一种新的解法。




算一个前缀和，presum[], 这是常有的空间优化时间，计算一个子数组和的常有方法


然后维护一个sum[0...i-1]的最小值，然后和sum[i]减，就是以a[i-1]为尾元素的子数组和的最大值


时间ON，空间O1


class Solution {
public:
    int maxSubA]]></description><category></category></item></channel></rss>