<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[pelsor的专栏]]></title><description><![CDATA[记录技术的点点滴滴]]></description><link>https://blog.youkuaiyun.com/pelsor</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; pelsor]]></copyright><item><title><![CDATA[iOS复习安排]]></title><link>https://blog.youkuaiyun.com/pelsor/article/details/51991928</link><guid>https://blog.youkuaiyun.com/pelsor/article/details/51991928</guid><author>pelsor</author><pubDate>Fri, 22 Jul 2016 09:53:35 +0800</pubDate><description><![CDATA[2017.7.22
复习下 TableView 解耦方式。更轻量的 View Controllers
复习下二叉树数据结构，刷5道算法题。
复习下TCP/UDP相关知识，看下CocoaAsyncSocket源码。]]></description><category></category></item><item><title><![CDATA[数据结构-串]]></title><link>https://blog.youkuaiyun.com/pelsor/article/details/51966548</link><guid>https://blog.youkuaiyun.com/pelsor/article/details/51966548</guid><author>pelsor</author><pubDate>Wed, 20 Jul 2016 11:15:06 +0800</pubDate><description><![CDATA[字符串的排列
  输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 结果请按字母顺序输出。
我们求整个字符串的排列，可以看成两步：首先求所有可能出现在第一个位置的字符，即把第一个字符和后面所有的字符交换。第二步固定第一个字符，求后面所有字符的排列。这个时候我们仍把后面所有的字]]></description><category></category></item><item><title><![CDATA[数据结构-栈和队列]]></title><link>https://blog.youkuaiyun.com/pelsor/article/details/51954064</link><guid>https://blog.youkuaiyun.com/pelsor/article/details/51954064</guid><author>pelsor</author><pubDate>Tue, 19 Jul 2016 16:20:02 +0800</pubDate><description><![CDATA[用两个栈实现队列
  用两个栈来实现一个队列，完成队列的Push和Pop操作。 队列中的元素为int类型。
class Solution
{
public:
     // 先将1个数据压入stack1中，然后再从stack1中取出压入stack2中
    void push(int node) {
        stack1.push(node);
    }    int pop() {]]></description><category></category></item><item><title><![CDATA[数据结构-线性表]]></title><link>https://blog.youkuaiyun.com/pelsor/article/details/51924800</link><guid>https://blog.youkuaiyun.com/pelsor/article/details/51924800</guid><author>pelsor</author><pubDate>Sat, 16 Jul 2016 23:02:31 +0800</pubDate><description><![CDATA[算法题主要来自剑指offer上面的题目，本章主要是重新复习下线性表及其相关的算法题。
二维数组中的查找
  在一个二维数组中，每一行都按照从左到右递增的顺序排序，每一列都按照从上到下递增的顺序排序。请完成一个函数，输入这样的一个二维数组和一个整数，判断数组中是否含有该整数。
class Solution {
public:
    bool Find(vector<vector<int> > arr]]></description><category></category></item><item><title><![CDATA[剑指offer（63）-机器人的运动范围]]></title><link>https://blog.youkuaiyun.com/pelsor/article/details/51907719</link><guid>https://blog.youkuaiyun.com/pelsor/article/details/51907719</guid><author>pelsor</author><pubDate>Thu, 14 Jul 2016 11:26:12 +0800</pubDate><description><![CDATA[题目描述地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动，每一次只能向左，右，上，下四个方向移动一格，但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如，当k为18时，机器人能够进入方格（35,37），因为3+5+3+7 = 18。但是，它不能进入方格（35,38），因为3+5+3+8 = 19。请问该机器人能够达到多少个格子？代码class Solution {
public]]></description><category></category></item><item><title><![CDATA[剑指offer（62）-矩阵中的路径]]></title><link>https://blog.youkuaiyun.com/pelsor/article/details/51907671</link><guid>https://blog.youkuaiyun.com/pelsor/article/details/51907671</guid><author>pelsor</author><pubDate>Thu, 14 Jul 2016 11:22:41 +0800</pubDate><description><![CDATA[题目描述请设计一个函数，用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始，每一步可以在矩阵中向左，向右，向上，向下移动一个格子。如果一条路径经过了矩阵中的某一个格子，则该路径不能再进入该格子。 例如 a b c e s f c s a d e e 矩阵中包含一条字符串”bcced”的路径，但是矩阵中不包含”abcb”路径，因为字符串的第一个字符b占据了矩]]></description><category></category></item><item><title><![CDATA[剑指offer（61）-滑动窗口的最大值]]></title><link>https://blog.youkuaiyun.com/pelsor/article/details/51907606</link><guid>https://blog.youkuaiyun.com/pelsor/article/details/51907606</guid><author>pelsor</author><pubDate>Thu, 14 Jul 2016 11:18:53 +0800</pubDate><description><![CDATA[题目描述给定一个数组和滑动窗口的大小，找出所有滑动窗口里数值的最大值。例如，如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3，那么一共存在6个滑动窗口，他们的最大值分别为{4,4,6,6,6,5}； 针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个： {[2,3,4],2,6,2,5,1}， {2,[3,4,2],6,2,5,1}， {2,3,[4,2,6],2,5,1]]></description><category></category></item><item><title><![CDATA[剑指offer（60）-数据流中的中位数]]></title><link>https://blog.youkuaiyun.com/pelsor/article/details/51907538</link><guid>https://blog.youkuaiyun.com/pelsor/article/details/51907538</guid><author>pelsor</author><pubDate>Thu, 14 Jul 2016 11:13:53 +0800</pubDate><description><![CDATA[题目描述如何得到一个数据流中的中位数？如果从数据流中读出奇数个数值，那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值，那么中位数就是所有数值排序之后中间两个数的平均值。代码class Solution {
public:
    priority_queue<int,vector<int>,less<int>> p;
    priority_queue<int,vecto]]></description><category></category></item><item><title><![CDATA[iOS复习知识点]]></title><link>https://blog.youkuaiyun.com/pelsor/article/details/51907513</link><guid>https://blog.youkuaiyun.com/pelsor/article/details/51907513</guid><author>pelsor</author><pubDate>Thu, 14 Jul 2016 11:12:12 +0800</pubDate><description><![CDATA[复习知识点
内存管理
block
runtime
iOS类别/扩展(类别只能添加方法，不能添加属性和成员变量，需要添加属性和成员变量需要使用runtime的关联方法)]]></description><category></category></item><item><title><![CDATA[剑指offer（59）-二叉搜索树的第k个结点]]></title><link>https://blog.youkuaiyun.com/pelsor/article/details/51898699</link><guid>https://blog.youkuaiyun.com/pelsor/article/details/51898699</guid><author>pelsor</author><pubDate>Wed, 13 Jul 2016 15:45:37 +0800</pubDate><description><![CDATA[题目描述给定一颗二叉搜索树，请找出其中的第k大的结点。例如， 5 / \ 3 7 /\ /\ 2 4 6 8 中，按结点数值大小顺序第三个结点的值为4。解题思路如果按照中序遍历的顺序遍历一颗二叉搜索树，遍历序列的数值是递增排序的。因此，只需要用中序遍历算法遍历一颗二叉搜索树，就很容易找出它的第k大结点。代码/*
struct TreeNode {
    int val;
    struct Tr]]></description><category></category></item><item><title><![CDATA[剑指offer（58）-序列化二叉树]]></title><link>https://blog.youkuaiyun.com/pelsor/article/details/51896321</link><guid>https://blog.youkuaiyun.com/pelsor/article/details/51896321</guid><author>pelsor</author><pubDate>Wed, 13 Jul 2016 11:15:48 +0800</pubDate><description><![CDATA[题目描述请实现两个函数，分别用来序列化和反序列化二叉树。这里没有规定序列化的方式。代码/*
struct TreeNode {
    int val;
    struct TreeNode *left;
    struct TreeNode *right;
    TreeNode(int x) :
            val(x), left(NULL), right(NULL) {]]></description><category></category></item><item><title><![CDATA[剑指offer（57）-把二叉树打印成多行]]></title><link>https://blog.youkuaiyun.com/pelsor/article/details/51895709</link><guid>https://blog.youkuaiyun.com/pelsor/article/details/51895709</guid><author>pelsor</author><pubDate>Wed, 13 Jul 2016 10:36:17 +0800</pubDate><description><![CDATA[题目描述从上到下按层打印二叉树，同一层结点从左至右输出。每一层输出一行。代码/*
struct TreeNode {
    int val;
    struct TreeNode *left;
    struct TreeNode *right;
    TreeNode(int x) :
            val(x), left(NULL), right(NULL) {
    }]]></description><category></category></item><item><title><![CDATA[剑指offer（56）-按之字形顺序打印二叉树]]></title><link>https://blog.youkuaiyun.com/pelsor/article/details/51889645</link><guid>https://blog.youkuaiyun.com/pelsor/article/details/51889645</guid><author>pelsor</author><pubDate>Tue, 12 Jul 2016 15:44:13 +0800</pubDate><description><![CDATA[题目描述请实现一个函数按照之字形打印二叉树，即第一行按照从左到右的顺序打印，第二层按照从右至左的顺序打印，第三行按照从左到右的顺序打印，其他行以此类推。代码/*
struct TreeNode {
    int val;
    struct TreeNode *left;
    struct TreeNode *right;
    TreeNode(int x) :]]></description><category></category></item><item><title><![CDATA[剑指offer（55）-对称的二叉树]]></title><link>https://blog.youkuaiyun.com/pelsor/article/details/51889277</link><guid>https://blog.youkuaiyun.com/pelsor/article/details/51889277</guid><author>pelsor</author><pubDate>Tue, 12 Jul 2016 15:14:02 +0800</pubDate><description><![CDATA[题目描述请实现一个函数，用来判断一颗二叉树是不是对称的。注意，如果一个二叉树同此二叉树的镜像是同样的，定义其为对称的。解题思路
针对前序遍历定义一种对称的遍历算法，即先遍历父结点，再遍历右子结点，最后遍历它的左子结点。
将前序遍历和我们自己定义的遍历方法的序列进行比较，如果相同，则为对称，否则，不对称。
代码/*
struct TreeNode {
    int val;
    struct T]]></description><category></category></item><item><title><![CDATA[剑指offer（54）-二叉树的下一个结点]]></title><link>https://blog.youkuaiyun.com/pelsor/article/details/51887477</link><guid>https://blog.youkuaiyun.com/pelsor/article/details/51887477</guid><author>pelsor</author><pubDate>Tue, 12 Jul 2016 11:32:54 +0800</pubDate><description><![CDATA[题目描述给定一个二叉树和其中的一个结点，请找出中序遍历顺序的下一个结点并且返回。注意，树中的结点不仅包含左右子结点，同时包含指向父结点的指针。代码using namespace std;
/*
struct TreeLinkNode {
    int val;
    struct TreeLinkNode *left;
    struct TreeLinkNode *right;
    st]]></description><category></category></item><item><title><![CDATA[剑指offer（53）-删除链表中重复的结点]]></title><link>https://blog.youkuaiyun.com/pelsor/article/details/51879826</link><guid>https://blog.youkuaiyun.com/pelsor/article/details/51879826</guid><author>pelsor</author><pubDate>Mon, 11 Jul 2016 12:16:36 +0800</pubDate><description><![CDATA[题目描述在一个排序的链表中，存在重复的结点，请删除该链表中重复的结点，重复的结点不保留，返回链表头指针。 例如，链表1->2->3->3->4->4->5 处理后为 1->2->5代码/*
struct ListNode {
    int val;
    struct ListNode *next;
    ListNode(int x) :
        val(x), next(NULL)]]></description><category></category></item><item><title><![CDATA[剑指offer（52）-链表中环的入口结点]]></title><link>https://blog.youkuaiyun.com/pelsor/article/details/51879712</link><guid>https://blog.youkuaiyun.com/pelsor/article/details/51879712</guid><author>pelsor</author><pubDate>Mon, 11 Jul 2016 11:53:18 +0800</pubDate><description><![CDATA[题目描述一个链表中包含环，请找出该链表的环的入口结点。代码/*
struct ListNode {
    int val;
    struct ListNode *next;
    ListNode(int x) :
        val(x), next(NULL) {
    }
};
*/
class Solution {
public:
    //找到一快一慢两个指针相遇的结点，两]]></description><category></category></item><item><title><![CDATA[剑指offer（51）-字符流中第一个不重复的字符]]></title><link>https://blog.youkuaiyun.com/pelsor/article/details/51879118</link><guid>https://blog.youkuaiyun.com/pelsor/article/details/51879118</guid><author>pelsor</author><pubDate>Mon, 11 Jul 2016 10:55:47 +0800</pubDate><description><![CDATA[题目描述请实现一个函数用来找出字符流中第一个只出现一次的字符。例如，当从字符流中只读出前两个字符”go”时，第一个只出现一次的字符是”g”。当从该字符流中读出前六个字符“google”时，第一个只出现一次的字符是”l”。 解题思路对这个题目思考，可以发现，出现的字符 和 它的出现的次数 是一种对应关系，自然联想到 哈希表的 key-value 这种对应，或者应用关联容器 map，可以很方便的解决这个]]></description><category></category></item><item><title><![CDATA[剑指offer（50）-表示数值的字符串]]></title><link>https://blog.youkuaiyun.com/pelsor/article/details/51816829</link><guid>https://blog.youkuaiyun.com/pelsor/article/details/51816829</guid><author>pelsor</author><pubDate>Sun, 03 Jul 2016 20:48:30 +0800</pubDate><description><![CDATA[题目描述请实现一个函数用来判断字符串是否表示数值（包括整数和小数）。例如，字符串”+100”,”5e2”,”-123”,”3.1416”和”-1E-16”都表示数值。 但是”12e”,”1a3.14”,”1.2.3”,”+-5”和”12e+4.3”都不是。代码public class Solution {
    public boolean isNumeric(char[] str) {]]></description><category></category></item><item><title><![CDATA[剑指offer（49）-正则表达式匹配]]></title><link>https://blog.youkuaiyun.com/pelsor/article/details/51816658</link><guid>https://blog.youkuaiyun.com/pelsor/article/details/51816658</guid><author>pelsor</author><pubDate>Sun, 03 Jul 2016 20:09:51 +0800</pubDate><description><![CDATA[题目描述请实现一个函数用来匹配包括’.’和’‘的正则表达式。模式中的字符’.’表示任意一个字符，而’‘表示它前面的字符可以出现任意次（包含0次）。 在本题中，匹配是指字符串的所有字符匹配整个模式。例如，字符串”aaa”与模式”a.a”和”ab*ac*a”匹配，但是与”aa.a”和”ab*a”均不匹配。代码class Solution {
public:
    bool match(char* st]]></description><category></category></item></channel></rss>