<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[程序猿之路]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/HELLO_THERE</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; HELLO_THERE]]></copyright><item><title><![CDATA[Using Oauth 2.0 for Server to Server Applications]]></title><link>https://blog.youkuaiyun.com/HELLO_THERE/article/details/53325888</link><guid>https://blog.youkuaiyun.com/HELLO_THERE/article/details/53325888</guid><author>HELLO_THERE</author><pubDate>Thu, 24 Nov 2016 21:28:36 +0800</pubDate><description><![CDATA[google官网关于Using Oauth 2.0 for Server to Server Applications的介绍。
首先构造JWT(a header,a claim set,and a signature)，然后通过JWT请求Token，以后就可以通过Token调用google api。Token生命周期为1个小时，过期后需要重新请求Token。


难点：根据header和c]]></description><category></category></item><item><title><![CDATA[关于QNetWorkAccessManger异步]]></title><link>https://blog.youkuaiyun.com/HELLO_THERE/article/details/53115972</link><guid>https://blog.youkuaiyun.com/HELLO_THERE/article/details/53115972</guid><author>HELLO_THERE</author><pubDate>Thu, 10 Nov 2016 16:50:01 +0800</pubDate><description><![CDATA[最近被项目中一个问题折磨了很久，在网上找了很多资料，依然没有找到解决方案……后来慢慢调试琢磨终于弄清楚了，现在把这个问题贴出来，希望将来有人可以从中找到自己需要的答案。
  
QNetworkAccessManger介绍：QNetworkAccessManger提供了一组标准的函数，可以承载网络请求和一些可选的数据，并且每一个请求返回一个QNetworkReply对象。该返回的对象包含着返回的]]></description><category></category></item><item><title><![CDATA[C# 从需要登录的网站上抓取数据]]></title><link>https://blog.youkuaiyun.com/HELLO_THERE/article/details/49339815</link><guid>https://blog.youkuaiyun.com/HELLO_THERE/article/details/49339815</guid><author>HELLO_THERE</author><pubDate>Thu, 22 Oct 2015 22:19:24 +0800</pubDate><description><![CDATA[背景：昨天一个学金融的同学让我帮她从一个网站上抓取数据，然后导出到excel，粗略看了下有1000+条记录，人工统计的话确实不可能。虽说不会，但作为一个学计算机的，我还是厚着脸皮答应了。
 刚开始想的是直接发送GET请求，然后再解析返回的html不就可以获取需要的信息吗？的确，如果是不需要登录的网站，这样可行，但对于这个网站就行不通。所以首先我们需要做的就是抓包，即分析用户登录时浏览器向服务器发]]></description><category></category></item><item><title><![CDATA[Nim Game]]></title><link>https://blog.youkuaiyun.com/HELLO_THERE/article/details/49100095</link><guid>https://blog.youkuaiyun.com/HELLO_THERE/article/details/49100095</guid><author>HELLO_THERE</author><pubDate>Tue, 13 Oct 2015 16:23:26 +0800</pubDate><description><![CDATA[一道简单的博弈题目，给定n个石子，如果想要先手赢的话，则必须有当石子数为n-1或n-2或n-3时先手输。
所以可以得到一个序列：true,true,true,false,true,true,true,false,true……
发现是一个找规律的题目，即 if n%4==0 return false,else return true]]></description><category></category></item><item><title><![CDATA[Longest Palindromic Substring]]></title><link>https://blog.youkuaiyun.com/HELLO_THERE/article/details/48683475</link><guid>https://blog.youkuaiyun.com/HELLO_THERE/article/details/48683475</guid><author>HELLO_THERE</author><pubDate>Wed, 23 Sep 2015 17:54:42 +0800</pubDate><description><![CDATA[题意：求一个字符串s的最长回文子串。
思路：dp[i][j]表示s[i,j]是否为回文字符子串（true or false）
            则有状态转移方程：dp[i][j]=true,if  dp[i+1][j-1]==true&&s[i+1]==s[j-1]]]></description><category></category></item><item><title><![CDATA[Longest Substring Without Repeating Characters]]></title><link>https://blog.youkuaiyun.com/HELLO_THERE/article/details/48631663</link><guid>https://blog.youkuaiyun.com/HELLO_THERE/article/details/48631663</guid><author>HELLO_THERE</author><pubDate>Mon, 21 Sep 2015 20:02:40 +0800</pubDate><description><![CDATA[题意：给你一个字符串，求一个连续的没有重复字符的最大子串。
思路：设置两个数组flag[256]和pos[256]，flag记录某个字符是否包含在当前子串中，pos记录某个字符在当前子串中的位置。当出现重复字符ch时，就把当前字符串中ch前面的字             符全部去掉，并更改flag和pos。
算法流程：b a c a b c b b
                              ↑  （i=3,len=3,flag['b','a','c']=true,pos['b','a',']]></description><category></category></item><item><title><![CDATA[Two Sum]]></title><link>https://blog.youkuaiyun.com/HELLO_THERE/article/details/48548741</link><guid>https://blog.youkuaiyun.com/HELLO_THERE/article/details/48548741</guid><author>HELLO_THERE</author><pubDate>Fri, 18 Sep 2015 16:57:34 +0800</pubDate><description><![CDATA[题意：给你一个包含n个数的数组，要求找出两个数，使得他们的和等于指定的数target。
思路：先在[1,n]之间确定一个index1，然后再在[index1+1,n]之间找index2，使得nums[index1]+num[index2]==target.按照这种思路不做任何优化，时间复杂度为O(n^2).
优化：先将数组排序，这样在找index2的时候就可以用二分查找了.时间复杂度O(nlogn)
排序后改变了原数组元素的位置，所以我的做法是先保存原数组，最后再根据找到的两个数反过去去找对应在原数组的位置]]></description><category></category></item><item><title><![CDATA[H-Index]]></title><link>https://blog.youkuaiyun.com/HELLO_THERE/article/details/48543345</link><guid>https://blog.youkuaiyun.com/HELLO_THERE/article/details/48543345</guid><author>HELLO_THERE</author><pubDate>Fri, 18 Sep 2015 11:17:37 +0800</pubDate><description><![CDATA[题意：现在给你n篇论文，然后告诉你每篇论文的引用次数，求一个最大的整数h，使得有h篇论文的引用次数至少为h次，且剩下的n-h篇论文的引用次数不超过h次。
	从题意中可知道0<=h<=n，考虑边界情况，h=0：没有论文或者所有论文的引用次数都是0次；h=n：有n篇论文，且每篇论文的引用次数都至少为n次。理解清楚边界情          况后，中间的其实也就知道了。
首先还是考虑暴力方法，即h从n→1枚举，然后统计引用数>=h的论文数cnt，若cnt==h，则找到。时间复杂度O(n^2)，显然不行。]]></description><category></category></item><item><title><![CDATA[First Bad Version]]></title><link>https://blog.youkuaiyun.com/HELLO_THERE/article/details/48541913</link><guid>https://blog.youkuaiyun.com/HELLO_THERE/article/details/48541913</guid><author>HELLO_THERE</author><pubDate>Fri, 18 Sep 2015 10:40:06 +0800</pubDate><description><![CDATA[很久没在OJ上刷题了，不知不觉现在都已经是研究生了。开学才半个月，就感觉研究生生活是这么的无聊，每天不是看论文就是上课（ps：偶尔还打打游戏……）在yyd的建议下，决定重拾刷题的乐趣。在此，也希望有志同道合的小伙伴能加入我这个刷题小分队，大家一起快乐学习，共同进步
    废话少说，先来看看我2年后复出的第一道算法题吧^_^  (大牛看到这里就结束了……)
    


First Ba]]></description><category></category></item><item><title><![CDATA[Hide a file in a picture]]></title><link>https://blog.youkuaiyun.com/HELLO_THERE/article/details/27958381</link><guid>https://blog.youkuaiyun.com/HELLO_THERE/article/details/27958381</guid><author>HELLO_THERE</author><pubDate>Sun, 01 Jun 2014 11:02:19 +0800</pubDate><description><![CDATA[有时候，如果你想在电脑上隐藏重要的文件而不想让其他人看见，你会怎么做呢？找一个专业的工具？为文件夹设置密码？更改文件属性？这些方法可行，但它们可能不太方便和安全。这里，我给大家共享一个在图片中隐藏文件的方法。


前提：


1张图片 （test.jpg）1个文本文件（test.txt）WinRAR
步骤：


准备一张图片test.jpg和一个文本文件test.txt用Win]]></description><category></category></item><item><title><![CDATA[C#委托]]></title><link>https://blog.youkuaiyun.com/HELLO_THERE/article/details/19820249</link><guid>https://blog.youkuaiyun.com/HELLO_THERE/article/details/19820249</guid><author>HELLO_THERE</author><pubDate>Mon, 24 Feb 2014 16:02:44 +0800</pubDate><description><![CDATA[在C和C++ 中,只能提取函数的地址,并作为一个参数传递它。C没有类型安全性。可以把任何函数传递给需要函数指针的方法。但是,这种直接方法不仅会导致一些关于类型安全性的问题,而且没有意识到:在进行面向对象编程时,几乎没有方法是孤立存在的,而是在调用方法前通常需要与类实例相关联。所以.NET
 FmmewOrk在语法上不允许使用这种直接方法。如果要传递方法,就必须把方法的细节封装在一种新类型的对象中]]></description><category></category></item><item><title><![CDATA[C#使用委托进行异步编程]]></title><link>https://blog.youkuaiyun.com/HELLO_THERE/article/details/19773633</link><guid>https://blog.youkuaiyun.com/HELLO_THERE/article/details/19773633</guid><author>HELLO_THERE</author><pubDate>Sun, 23 Feb 2014 23:23:04 +0800</pubDate><description><![CDATA[最近项目中需要用到异步编程，虽然以前研究过，但时间一长竟然就都忘了于是就又再重新学习了一遍……
首先引用MSDN中的一段话来描述一下如何使用异步方式：

.NET Framework 允许您异步调用任何方法。 为此，应定义与您要调用的方法具有相同签名的委托；公共语言运行时会自动使用适当的签名为该委托定义 BeginInvoke 和 EndInvoke
 方法。

BeginInvoke]]></description><category></category></item><item><title><![CDATA[Tesseract学习（五）]]></title><link>https://blog.youkuaiyun.com/HELLO_THERE/article/details/18095617</link><guid>https://blog.youkuaiyun.com/HELLO_THERE/article/details/18095617</guid><author>HELLO_THERE</author><pubDate>Fri, 10 Jan 2014 22:55:00 +0800</pubDate><description><![CDATA[前面讲的都是对于标准字的识别，但对于验证码或者手写字体识别率就会非常低。为了让Tesseract识别自己的语言，可以通过训练语言库的方式来解决。下面通过一个识别手写字体的例子来了解Tesseract提供什么方式训练自己的语言库。
      首先我们来看下未经过训练的Tesseract对接下来的这张图片的识别率。
待识别图片：

识别结果：
     
可以看出识别效果很不理想。下面训]]></description><category></category></item><item><title><![CDATA[Tesseract学习（四）]]></title><link>https://blog.youkuaiyun.com/HELLO_THERE/article/details/17894997</link><guid>https://blog.youkuaiyun.com/HELLO_THERE/article/details/17894997</guid><author>HELLO_THERE</author><pubDate>Sun, 05 Jan 2014 23:39:30 +0800</pubDate><description><![CDATA[本博客将介绍如何在C#下调用Tesseract-OCR，只需添加dll即可方便的调用里面的API。
dll文件可在此处下载，下载后添加到项目引用。
与在C++下添加引用不同，此处无需再进行繁琐的配置，所以下面直接贴代码：
using System;
using System.Collections.Generic;
using System.ComponentModel;
using Sys]]></description><category></category></item><item><title><![CDATA[Tesseract学习（三）]]></title><link>https://blog.youkuaiyun.com/HELLO_THERE/article/details/17892057</link><guid>https://blog.youkuaiyun.com/HELLO_THERE/article/details/17892057</guid><author>HELLO_THERE</author><pubDate>Sun, 05 Jan 2014 22:40:19 +0800</pubDate><description><![CDATA[前两篇博客讲的都是通过调用客户端程序的方式来识别图像，但一旦要识别的图片很多的话，识别速度将很不乐观，因为频繁的打开关闭进程、频繁的访问文件都会严重影响程序的时间效率。
     接下来我将介绍通过调用API的方式。刚开始以为通过API的方式只能使用C++写，因为我看过的十几篇博客中都是C++实现的，于是郁闷了很久但后来发现原来有个网站提供C#版的dll，顿时喜极而泣啊有木有
     虽然个]]></description><category></category></item><item><title><![CDATA[Tesseract学习（二）]]></title><link>https://blog.youkuaiyun.com/HELLO_THERE/article/details/17891315</link><guid>https://blog.youkuaiyun.com/HELLO_THERE/article/details/17891315</guid><author>HELLO_THERE</author><pubDate>Sun, 05 Jan 2014 21:45:41 +0800</pubDate><description><![CDATA[在上篇博客中介绍到如何在cmd中通过命令的方式调用tesseract，接下来我们讨论如何在C#程序中调用，此处我是通过WinForm进行的封装。
       首先给出调用进程的代码：
       private void fnOCR(string v_strSourceImgPath, string v_strOutputPath)
        {
            using ]]></description><category></category></item><item><title><![CDATA[Tesseract学习（一）]]></title><link>https://blog.youkuaiyun.com/HELLO_THERE/article/details/17889199</link><guid>https://blog.youkuaiyun.com/HELLO_THERE/article/details/17889199</guid><author>HELLO_THERE</author><pubDate>Sun, 05 Jan 2014 21:19:01 +0800</pubDate><description><![CDATA[最近在做一个有关图像识别的项目，在这个过程中研究过许多算法也尝试写过，但效果不怎么好。后来别人建议我用开源类库Tesseract。由于网上大部分都是C++实现的，官网又是全英文的，于是走过许多弯路。下面写下自己学习的体会。
    官网上现在有最新安装版tesseract-ocr-3.02.exe,安装后就直接可以通过cmd调用。安装包中默认有英文语言包，要识别中文需要另外引入中文语言包。点此处]]></description><category></category></item><item><title><![CDATA[poj3436 ACM Computer Factory 拆点+网络流]]></title><link>https://blog.youkuaiyun.com/HELLO_THERE/article/details/8997110</link><guid>https://blog.youkuaiyun.com/HELLO_THERE/article/details/8997110</guid><author>HELLO_THERE</author><pubDate>Thu, 30 May 2013 23:04:05 +0800</pubDate><description><![CDATA[ACM Computer Factory




Time Limit: 1000MS

Memory Limit: 65536K


Total Submissions: 4674

Accepted: 1582

Special Judge




Description

As you know, all the computers used for]]></description><category></category></item><item><title><![CDATA[poj2391 Ombrophobic Bovines 拆点+网络流]]></title><link>https://blog.youkuaiyun.com/HELLO_THERE/article/details/8996017</link><guid>https://blog.youkuaiyun.com/HELLO_THERE/article/details/8996017</guid><author>HELLO_THERE</author><pubDate>Thu, 30 May 2013 19:27:26 +0800</pubDate><description><![CDATA[Ombrophobic Bovines




Time Limit: 1000MS

Memory Limit: 65536K


Total Submissions: 11558

Accepted: 2566




Description
FJ's cows really hate getting wet so much that the mere th]]></description><category></category></item><item><title><![CDATA[poj1087 A Plug for UNIX]]></title><link>https://blog.youkuaiyun.com/HELLO_THERE/article/details/8991958</link><guid>https://blog.youkuaiyun.com/HELLO_THERE/article/details/8991958</guid><author>HELLO_THERE</author><pubDate>Thu, 30 May 2013 01:00:08 +0800</pubDate><description><![CDATA[A Plug for UNIX




Time Limit: 1000MS

Memory Limit: 65536K


Total Submissions: 12438

Accepted: 4136




Description
You are in charge of setting up the press room for the inaugur]]></description><category></category></item></channel></rss>