<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[xero10的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/xero10</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; xero10]]></copyright><item><title><![CDATA[算法题]]></title><link>https://blog.youkuaiyun.com/xero10/article/details/49148865</link><guid>https://blog.youkuaiyun.com/xero10/article/details/49148865</guid><author>xero10</author><pubDate>Wed, 01 Apr 2020 09:19:25 +0800</pubDate><description><![CDATA[happy number:https://leetcode.com/problems/happy-number/
如果结果存在非1的循环，则不是happy number，所以可以通过检查结果是否存在循环来判断。一个可用的cycle detection算法是Floyd algorithm（也叫Tortoise and hare algorithm）。思想是设置两个指针p1，p2。p1一次移动一个]]></description><category></category></item><item><title><![CDATA[正常技巧题]]></title><link>https://blog.youkuaiyun.com/xero10/article/details/49148797</link><guid>https://blog.youkuaiyun.com/xero10/article/details/49148797</guid><author>xero10</author><pubDate>Wed, 01 Apr 2020 09:19:16 +0800</pubDate><description><![CDATA[implement queue using stack:https://leetcode.com/problems/implement-queue-using-stacks/
用两个stack，stack1储存queue，stack2暂时储存stack1所pop出的数据，然后再pop stack2将数据push回stack1]]></description><category></category></item><item><title><![CDATA[hash table]]></title><link>https://blog.youkuaiyun.com/xero10/article/details/50272127</link><guid>https://blog.youkuaiyun.com/xero10/article/details/50272127</guid><author>xero10</author><pubDate>Wed, 01 Apr 2020 09:18:49 +0800</pubDate><description><![CDATA[Easy:

happy number:https://leetcode.com/problems/happy-number/



如果结果存在非1的循环，则不是happy number，所以可以通过检查结果是否存在循环来判断。一个可用的cycle detection算法是Floyd algorithm（也叫Tortoise and hare algorithm）。思想是设置两个指]]></description><category></category></item><item><title><![CDATA[Dynamic Programming]]></title><link>https://blog.youkuaiyun.com/xero10/article/details/50540543</link><guid>https://blog.youkuaiyun.com/xero10/article/details/50540543</guid><author>xero10</author><pubDate>Wed, 01 Apr 2020 09:18:35 +0800</pubDate><description><![CDATA[Easy:
Paint Fence:https://leetcode.com/problems/paint-fence/
设两个数组diff和same，分别表示第 i 个位置最后两个post颜色相同和颜色不同的组合数，则diff[i] = (k - 1) * diff[i - 1] + (k - 1) * same[i - 1]，same[i] = diff[i - 1]，最后返回diff[]]></description><category></category></item><item><title><![CDATA[数学技巧题]]></title><link>https://blog.youkuaiyun.com/xero10/article/details/49148493</link><guid>https://blog.youkuaiyun.com/xero10/article/details/49148493</guid><author>xero10</author><pubDate>Wed, 01 Apr 2020 09:18:23 +0800</pubDate><description><![CDATA[Nim Game:https://leetcode.com/problems/nim-game/
n是4的倍数时一定失败


add digits:https://leetcode.com/problems/add-digits/
return 1 + (num - 1) % 9;]]></description><category></category></item><item><title><![CDATA[奇技淫巧题]]></title><link>https://blog.youkuaiyun.com/xero10/article/details/49148625</link><guid>https://blog.youkuaiyun.com/xero10/article/details/49148625</guid><author>xero10</author><pubDate>Wed, 01 Apr 2020 09:18:11 +0800</pubDate><description><![CDATA[move zeros:https://leetcode.com/problems/move-zeroes/
找到第一个0，记录0的个数为count，将 a[i+count] 移动到 a[i]。可以理解为设定了两个指针


number of 1 bits:https://leetcode.com/problems/number-of-1-bits/
n &= n - 1; 一次可以去]]></description><category></category></item><item><title><![CDATA[Lintcode题目总结]]></title><link>https://blog.youkuaiyun.com/xero10/article/details/51451463</link><guid>https://blog.youkuaiyun.com/xero10/article/details/51451463</guid><author>xero10</author><pubDate>Thu, 19 May 2016 10:36:45 +0800</pubDate><description><![CDATA[方法技巧题：
Complete Binary Tree: http://www.lintcode.com/en/problem/complete-binary-tree/
用一个名为nodes的vector存储层序遍历的结果，在nodes[i] != NULL时将其左右儿子加入nodes。遍历了所有节点后，将nodes结尾的NULL节点pop_back，则nodes中剩下的节点中如果有NULL]]></description><category></category></item><item><title><![CDATA[smart pointer]]></title><link>https://blog.youkuaiyun.com/xero10/article/details/50985089</link><guid>https://blog.youkuaiyun.com/xero10/article/details/50985089</guid><author>xero10</author><pubDate>Sat, 26 Mar 2016 12:13:41 +0800</pubDate><description><![CDATA[smart pointer是一种abstract data type，它能够模仿指针的行为，并且额外提供了一系列诸如自动内存管理、边界检查等特性，这些特性是为了在保证效率的基础上较少由于对指针的不正常使用而带来的bug。smart pointer能够自动进行object的销毁：当某个object的最后一个拥有者被destroy的时候（如局部变量离开了作用域），由smart pointer管理的ob]]></description><category></category></item><item><title><![CDATA[Standard Template Library (STL)基础]]></title><link>https://blog.youkuaiyun.com/xero10/article/details/50753554</link><guid>https://blog.youkuaiyun.com/xero10/article/details/50753554</guid><author>xero10</author><pubDate>Thu, 03 Mar 2016 06:37:36 +0800</pubDate><description><![CDATA[当在STL的语境中谈论vector、stack等数据结构时，它们通常被叫做container class
iterator是可以实现访问container中数据的对象，是generalization of pointer，通常也是通过指针实现的，虽然它并不是指针。可以通过++，--，*，==，!=等进行处理，但并不是所有的iterator都支持这些操作符
iterator可以分为以下几类：]]></description><category></category></item><item><title><![CDATA[I/O Stream]]></title><link>https://blog.youkuaiyun.com/xero10/article/details/50736184</link><guid>https://blog.youkuaiyun.com/xero10/article/details/50736184</guid><author>xero10</author><pubDate>Thu, 25 Feb 2016 11:47:54 +0800</pubDate><description><![CDATA[文件输入流的变量是ifstream，输出流是ofstream，它们包含在头文件中。stream变量必须通过open函数连接文件。一旦声明了输入/输出流并连接了文件，就可以用">>"/"
每一个input-file stream都有成员函数eof来判断是否已读到文件结尾，当程序试图访问文件结尾后的一个字符时才会返回true（即遇到end-of-file标记时）

#include
...
if]]></description><category></category></item><item><title><![CDATA[Hard题目总结]]></title><link>https://blog.youkuaiyun.com/xero10/article/details/50530791</link><guid>https://blog.youkuaiyun.com/xero10/article/details/50530791</guid><author>xero10</author><pubDate>Tue, 16 Feb 2016 00:03:35 +0800</pubDate><description><![CDATA[Binary Search
Search in Rotated Sorted Array:https://leetcode.com/problems/search-in-rotated-sorted-array/
两种方法：
1）直接binary search，先判断mid在哪一段，然后判断mid和target的关系，如果结果可能在两段，再判断这段边界(left或right)和target]]></description><category></category></item><item><title><![CDATA[Medium题目总结]]></title><link>https://blog.youkuaiyun.com/xero10/article/details/50229575</link><guid>https://blog.youkuaiyun.com/xero10/article/details/50229575</guid><author>xero10</author><pubDate>Mon, 15 Feb 2016 05:10:20 +0800</pubDate><description><![CDATA[方法技巧题：
search a 2D matrix II:https://leetcode.com/problems/search-a-2d-matrix-ii/
从左下角开始，如果元素大于target则行减1，如果小于target则列加1


product of array except self: https://leetcode.com/problems/product-of-]]></description><category></category></item><item><title><![CDATA[Exception Handling]]></title><link>https://blog.youkuaiyun.com/xero10/article/details/50662240</link><guid>https://blog.youkuaiyun.com/xero10/article/details/50662240</guid><author>xero10</author><pubDate>Sun, 14 Feb 2016 12:07:00 +0800</pubDate><description><![CDATA[int amount;
try {
	cin >> amount;
	if(amount < 0)
		throw amount;
}
catch(int e) {
	cout << amount << " is negative\n";
}C++中，基本的异常处理是try-throw-catch。try block中包含想要尝试执行的语句。上例中throw divisor;中的amount有时被]]></description><category></category></item><item><title><![CDATA[快速排序]]></title><link>https://blog.youkuaiyun.com/xero10/article/details/50639744</link><guid>https://blog.youkuaiyun.com/xero10/article/details/50639744</guid><author>xero10</author><pubDate>Sat, 06 Feb 2016 05:02:49 +0800</pubDate><description><![CDATA[该快速排序算法出自《算法导论》
思想是，先利用一个partition函数将数组中大于pivot的元素放到右边，小于等于pivot的元素放到左边，然后用pivot将两个部分分割，返回pivot的位置p，再对子数组[start, p - 1]和[p + 1, end]进行排序即可。代码如下：
void quickSort(vector& nums, int start, int end) {
	i]]></description><category></category></item><item><title><![CDATA[Bit Manipulation]]></title><link>https://blog.youkuaiyun.com/xero10/article/details/50257211</link><guid>https://blog.youkuaiyun.com/xero10/article/details/50257211</guid><author>xero10</author><pubDate>Sat, 12 Dec 2015 00:57:37 +0800</pubDate><description><![CDATA[number of 1 bits:https://leetcode.com/problems/number-of-1-bits/
n &= n - 1; 一次可以去掉一个1，记录到 n == 0 执行的次数


Missing Number:https://leetcode.com/problems/missing-number/
将0 ~ N和所有的元素XOR



Sin]]></description><category></category></item><item><title><![CDATA[Easy题目总结]]></title><link>https://blog.youkuaiyun.com/xero10/article/details/50214089</link><guid>https://blog.youkuaiyun.com/xero10/article/details/50214089</guid><author>xero10</author><pubDate>Tue, 08 Dec 2015 06:27:00 +0800</pubDate><description><![CDATA[正常技巧题

implement queue using stack:https://leetcode.com/problems/implement-queue-using-stacks/
用两个stack，stack1储存queue，stack2暂时储存stack1所pop出的数据，然后再pop stack2将数据push回stack1


binary tree level or]]></description><category></category></item><item><title><![CDATA[template]]></title><link>https://blog.youkuaiyun.com/xero10/article/details/49677883</link><guid>https://blog.youkuaiyun.com/xero10/article/details/49677883</guid><author>xero10</author><pubDate>Fri, 06 Nov 2015 06:10:59 +0800</pubDate><description><![CDATA[template允许定义以数据类型为参数的函数和class
template这叫template prefix，它告知compiler它后面的函数定义是一个template并且T是type parameter，这里class的是指数据类型。当使用template时，只会对每一种使用的数据类型产生对应的函数/class定义
许多compiler不支持template function decla]]></description><category></category></item><item><title><![CDATA[Separate compilation & Namespace]]></title><link>https://blog.youkuaiyun.com/xero10/article/details/49599297</link><guid>https://blog.youkuaiyun.com/xero10/article/details/49599297</guid><author>xero10</author><pubDate>Tue, 03 Nov 2015 01:29:24 +0800</pubDate><description><![CDATA[data type由一系列值和对这些值的相关操作组成。abstract data type（ADT）是指使用这类data type的程序猿不需要知道其实现相关细节的data type。如果想用class实现ADT，需要将该type如何被使用和如何被定义的细节分开，达到不需要修改使用ADT的程序就能改变class实现方式的程度。应该遵守的法则有：
1. 将所有的成员变量都设为private
2.]]></description><category></category></item><item><title><![CDATA[类]]></title><link>https://blog.youkuaiyun.com/xero10/article/details/49578195</link><guid>https://blog.youkuaiyun.com/xero10/article/details/49578195</guid><author>xero10</author><pubDate>Mon, 02 Nov 2015 05:53:41 +0800</pubDate><description><![CDATA[class中成员函数定义时的"::"符号叫做scope resolution operator，它前面的类名通常叫做type qualifier。定义成员函数时，可以使用该类的data member和function member而不必使用"."
"::"用于类，"."用于对象；“==”符号不能用于object或structure；“=”却可以对object/structure进行互相赋值
p]]></description><category></category></item><item><title><![CDATA[String & Vector]]></title><link>https://blog.youkuaiyun.com/xero10/article/details/49506931</link><guid>https://blog.youkuaiyun.com/xero10/article/details/49506931</guid><author>xero10</author><pubDate>Fri, 30 Oct 2015 11:08:49 +0800</pubDate><description><![CDATA[String
string类(class)在库中被定义，定义在std namespace中。注意，string是一个class
可以使用"="对string对象进行赋值，用"+"连接两个string；不必考虑被赋值的string是否有足够的大小。C++可以自动地将双引号中的字符串转换成string类型。，=都可以直接对string对象进行比较
string类有两个constructor，可以]]></description><category></category></item></channel></rss>