<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Elvin_C_L的记录]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/CL512976287</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; CL512976287]]></copyright><item><title><![CDATA[一种二分查找变形]]></title><link>https://blog.youkuaiyun.com/CL512976287/article/details/38980605</link><guid>https://blog.youkuaiyun.com/CL512976287/article/details/38980605</guid><author>CL512976287</author><pubDate>Mon, 01 Sep 2014 15:30:03 +0800</pubDate><description><![CDATA[原始的二分查找非常简单，只要找到值返回即可；但是如果某]]></description><category></category></item><item><title><![CDATA[C++ 的 RTTI 观念和用途]]></title><link>https://blog.youkuaiyun.com/CL512976287/article/details/22782059</link><guid>https://blog.youkuaiyun.com/CL512976287/article/details/22782059</guid><author>CL512976287</author><pubDate>Wed, 02 Apr 2014 10:07:33 +0800</pubDate><description><![CDATA[注：这是个人觉得讲RTTI最透彻的文章，台湾“物泽‧C++应用小组”写的，比较老了，不过价值依然很大                                                                                                                           
自从1993年Bjarne Stroustrup ]]></description><category></category></item><item><title><![CDATA[求数组的逆序数]]></title><link>https://blog.youkuaiyun.com/CL512976287/article/details/22719813</link><guid>https://blog.youkuaiyun.com/CL512976287/article/details/22719813</guid><author>CL512976287</author><pubDate>Tue, 01 Apr 2014 11:21:28 +0800</pubDate><description><![CDATA[题目：在一个排列中，如果一对数的前后位置与大小顺序相反，即前面的数大于后面的数，那么它们就称为一个逆序。一个排列中逆序的总数就称为这个排列的逆序数。
现在，给你一个N个元素的序列，请你判断出它的逆序数是多少。
比如 1 3 2 的逆序数就是1。
方法1:：O(n^2)这个就不说了。
方法2： 借助归并排序达到O(nlgn)的时间复杂度，当然牺牲了一点空间。
这里主要描述一下方法2，前提是]]></description><category></category></item><item><title><![CDATA[子串子序列相关面试题总结]]></title><link>https://blog.youkuaiyun.com/CL512976287/article/details/22378275</link><guid>https://blog.youkuaiyun.com/CL512976287/article/details/22378275</guid><author>CL512976287</author><pubDate>Fri, 28 Mar 2014 10:16:34 +0800</pubDate><description><![CDATA[注：子串是连续的，子序列则不连续
1，求最长回文子串
中心法应该是最为常用的办法，时间复杂度O(n^2)。输入字符串假设为”abcdedc"；从左到右依次考虑以a为中心最长回文是多少，以ab中间的空为中心最长回文是多少，以b为中心最长回文是多少.......
代码如下：

int LPS(char *str, int n)
{
	assert(str != NULL);

	int le]]></description><category></category></item><item><title><![CDATA[求字符串编辑距离的递推和递归实现]]></title><link>https://blog.youkuaiyun.com/CL512976287/article/details/22158025</link><guid>https://blog.youkuaiyun.com/CL512976287/article/details/22158025</guid><author>CL512976287</author><pubDate>Wed, 26 Mar 2014 10:47:58 +0800</pubDate><description><![CDATA[递推实现：
int CalculateDis_DP(char *str1,char *str2) 
{  
	int i, j;
	int len1=strlen(str1), len2=strlen(str2);  
    
	for (i=0;i<=len2;i++)  
        d[0][i]=i;  
    
	for (i=0;i<=len1;i++)]]></description><category></category></item><item><title><![CDATA[C语言部分库函数实现]]></title><link>https://blog.youkuaiyun.com/CL512976287/article/details/21723755</link><guid>https://blog.youkuaiyun.com/CL512976287/article/details/21723755</guid><author>CL512976287</author><pubDate>Fri, 21 Mar 2014 15:55:17 +0800</pubDate><description><![CDATA[1，strcpy实现

char* my_strcpy(char *dest, const char *src)
{
	if (NULL == dest || NULL == src)
		return NULL;

	char* temp = dest;

	while ((*dest++ = *src++) != '\0');

	return temp;
}
2，strcmp实现]]></description><category></category></item><item><title><![CDATA[一道亚马逊面试题（股票买卖问题）]]></title><link>https://blog.youkuaiyun.com/CL512976287/article/details/21616167</link><guid>https://blog.youkuaiyun.com/CL512976287/article/details/21616167</guid><author>CL512976287</author><pubDate>Thu, 20 Mar 2014 14:21:03 +0800</pubDate><description><![CDATA[题目:一个股价序列，已知每个时间点的股价，问什么时候买什么时候卖获利最大
这道题O(N)空间复杂度和O(N)时间复杂度都不难想到:假设股价序列由a[N]表示，一种方法是开一个缓冲数组b[N-1]，记录a[N]中每两个相邻元素的差值，然后问题转化为求b[N-1]的最大子数组和(当然必须知道最大子数组和的O(N)解法)。第二种方法是开一个缓冲数组b[N]，依次存储以当前元素结尾的左侧数组最小值，然后]]></description><category></category></item><item><title><![CDATA[随机概率相关的面试题]]></title><link>https://blog.youkuaiyun.com/CL512976287/article/details/21527743</link><guid>https://blog.youkuaiyun.com/CL512976287/article/details/21527743</guid><author>CL512976287</author><pubDate>Wed, 19 Mar 2014 13:55:35 +0800</pubDate><description><![CDATA[转至：http://blog.youkuaiyun.com/luckyxiaoqiang/article/details/8788906
1. 已知有个rand7()的函数，返回1到7随机自然数，让利用这个rand7()构造rand10() 随机1~10。
只调用一次rand7()肯定无法达到目的。我们调用两次rand7()，这样我们可以随机的得到1~49中的一个数，为什么呢？
我们将49分成7段，1~]]></description><category></category></item><item><title><![CDATA[一道腾讯笔试题（已知一个数组，不使用除法构造另一数组）]]></title><link>https://blog.youkuaiyun.com/CL512976287/article/details/21444171</link><guid>https://blog.youkuaiyun.com/CL512976287/article/details/21444171</guid><author>CL512976287</author><pubDate>Tue, 18 Mar 2014 10:11:25 +0800</pubDate><description><![CDATA[题目：给定一数组a[N]，我们希望构造数组b [N]，其中b[j]=a[0]*a[1]…a[N-1] / a[j]，在构造过程中，不允许使用除法；要求O（1）空间复杂度和O（n）的时间复杂度。
观察b[j]的构造公式，发现它实际上是由两部分相乘得到。左边是a[i]到a[j-1]的乘积，右边是a[j+1]到a[N-1]的乘积，中间的a[j]被除掉了。接下来就是怎么实现的问题了。先从左向右扫描a[N]]></description><category></category></item><item><title><![CDATA[求连续子数组最大乘积]]></title><link>https://blog.youkuaiyun.com/CL512976287/article/details/21337185</link><guid>https://blog.youkuaiyun.com/CL512976287/article/details/21337185</guid><author>CL512976287</author><pubDate>Sun, 16 Mar 2014 20:44:32 +0800</pubDate><description><![CDATA[因为数组中存在正负零的情况，所以相比求连续子数组最大和的问题，求最大积稍微复杂一些，不过代码还是很简洁。
假设数组为a[N]，max[N] 表示以下标为 i 结尾的子数组乘积最大值，min[N] 表示以下标为 i 结尾的子数组乘积最小值。
为了处理数组元素为负的问题，必须将最小乘积也保存起来。。很容易想到，若当前元素a[i]为负数，那么乘以a[i]*max[i-1]得到的并不一定比a[i]*m]]></description><category></category></item><item><title><![CDATA[打印螺旋数组]]></title><link>https://blog.youkuaiyun.com/CL512976287/article/details/21172271</link><guid>https://blog.youkuaiyun.com/CL512976287/article/details/21172271</guid><author>CL512976287</author><pubDate>Thu, 13 Mar 2014 16:00:02 +0800</pubDate><description><![CDATA[已知M和N，要求打印一个M行N列的螺旋矩阵。比如M、N都为3，则打印
1  2  3 
8  9  4
7  6  5
我们来看，因为是按螺旋状打印，我们更直观的可以将其理解为分层打印，比如上面的例子分为两层，第一层为：1、2、3、4、5、6、7、8；第二层为：9。  这样我们将问题转化为分层打印，而每一层有四个边，所以我们要考虑的是怎么将四条边合理的打印出来。


为了表示每条边的]]></description><category></category></item><item><title><![CDATA[打印集合的所有子集]]></title><link>https://blog.youkuaiyun.com/CL512976287/article/details/21088797</link><guid>https://blog.youkuaiyun.com/CL512976287/article/details/21088797</guid><author>CL512976287</author><pubDate>Wed, 12 Mar 2014 14:43:30 +0800</pubDate><description><![CDATA[已知一个集合，其子集包括空集和本身。怎样将所有的子集打印出来？最简单的O（N^3)算法不难想到，但是太过于朴素，应该还有更巧的方法。
我们已知，一个元素个数为n的集合，其子集个数为2^n个。比如set { 1, 2 }，含有两个元素，一共有四个子集，分别为{ }，{ 1 }，{ 2 }，{ 1，2 }。 我们取一个只有两位的bitset，显然这个两位的bitset只有四种组合，00、01、10、]]></description><category></category></item><item><title><![CDATA[面试题之数组篇]]></title><link>https://blog.youkuaiyun.com/CL512976287/article/details/21012445</link><guid>https://blog.youkuaiyun.com/CL512976287/article/details/21012445</guid><author>CL512976287</author><pubDate>Tue, 11 Mar 2014 14:16:24 +0800</pubDate><description><![CDATA[转至：http://www.cnblogs.com/graphics/archive/2010/08/24/1761620.html    感谢原作者的收集整理

数组是最基本的数据结构，关于数组的面试题也屡见不鲜，本文罗列了一些常见的面试题，仅供参考，如果您有更好的题目或者想法，欢迎留言讨论。目前有以下18道题目，如果有好的题目，随时更新。

数组求和求数组的最大值和最小值求数组的最大值]]></description><category></category></item><item><title><![CDATA[常用排序算法C语言实现]]></title><link>https://blog.youkuaiyun.com/CL512976287/article/details/20950857</link><guid>https://blog.youkuaiyun.com/CL512976287/article/details/20950857</guid><author>CL512976287</author><pubDate>Mon, 10 Mar 2014 21:04:42 +0800</pubDate><description><![CDATA[1，冒泡排序

void BubbleSort(int a[], int n)
{
	int i, j, tmp;
	int flag = 1;

	for (i = 0; i < n && flag ; i++)
	{
		flag = 0;
		for (j = 0; j < n - i - 1; j++)
			if (a[j] > a[j+1])
			{
				tmp = a[j]]]></description><category></category></item><item><title><![CDATA[linux文件组织结构]]></title><link>https://blog.youkuaiyun.com/CL512976287/article/details/20611707</link><guid>https://blog.youkuaiyun.com/CL512976287/article/details/20611707</guid><author>CL512976287</author><pubDate>Thu, 06 Mar 2014 10:35:20 +0800</pubDate><description><![CDATA[文件系统的组织结构分析；

        文件系统的组织结构分析，我们能分析什么呢？也就是当我们列/目录时，所看到的/usr、/etc ... ... /var 等目录是做什么用的，这些目录是不是有些特定的用途。无论哪个哪个版本的Linux系统，都有这些目录，这些目录应该是标准的。当然各个Linux发行版本也会存在一些小小的差异，但总体来说，还是大体差不多。

        Linux]]></description><category></category></item><item><title><![CDATA[Linux常用命令]]></title><link>https://blog.youkuaiyun.com/CL512976287/article/details/20609155</link><guid>https://blog.youkuaiyun.com/CL512976287/article/details/20609155</guid><author>CL512976287</author><pubDate>Thu, 06 Mar 2014 10:02:50 +0800</pubDate><description><![CDATA[显示目录和文件的命令

   Ls：用于查看所有文件夹的命令。
   Dir：用于显示指定文件夹和目录的命令   Tree： 以树状图列出目录内容
   Du：显示目录或文件大小 
修改目录，文件权限和属主及数组命令
   Chmod：用于改变指定目录或文件的权限命令。
   Chown：用于改变文件拥有属性的命令。
   Chgrp：用于改变文件群组的命令。
   Chattr]]></description><category></category></item><item><title><![CDATA[栈和队列的相互模拟]]></title><link>https://blog.youkuaiyun.com/CL512976287/article/details/19700135</link><guid>https://blog.youkuaiyun.com/CL512976287/article/details/19700135</guid><author>CL512976287</author><pubDate>Sat, 22 Feb 2014 20:49:29 +0800</pubDate><description><![CDATA[1、用两个栈（s1，s2）实现一个队列（q）
基本思想：入队列的时候都进入s1； 出队列的时候分情况，若s2不为空，则直接弹出s2栈顶元素
，若s2为空，则将s1除栈底元素外依次出栈并压入s2，再弹出s1栈底元素即可。
template 
class MyQueue
{
public:
	void push(T e)
	{
		s1.push(e);
	}
	T pop()
	{
		int]]></description><category></category></item><item><title><![CDATA[Ubuntu下VIM设置高亮、行号、缩进]]></title><link>https://blog.youkuaiyun.com/CL512976287/article/details/19330241</link><guid>https://blog.youkuaiyun.com/CL512976287/article/details/19330241</guid><author>CL512976287</author><pubDate>Mon, 17 Feb 2014 11:42:52 +0800</pubDate><description><![CDATA[首先确保安装了VIM，如果系统只有自带的VI，可通过sudo apt-get install vim 安装VIM。


VIM的配置文件是/etc/vim/vimrc，通过gedit打开它：sudo gedit /etc/vim/vimrc。


设置高亮：
在vimrc文件中有一行
"syntax on；找到这一行然后去掉前面的双引号即可。


设置行号：
在vimrc文]]></description><category></category></item><item><title><![CDATA[面试题之链表篇]]></title><link>https://blog.youkuaiyun.com/CL512976287/article/details/14166411</link><guid>https://blog.youkuaiyun.com/CL512976287/article/details/14166411</guid><author>CL512976287</author><pubDate>Tue, 05 Nov 2013 15:19:55 +0800</pubDate><description><![CDATA[链表是面试重中之重，但题型比较死，考的是细心。这里做一个总结，会给出模板实现。如果错误，请不吝指教！
1. 判断链表是否有环
2.求链表中间节点（偶数则返回前一个节点）
3.约瑟夫环问题
4. 链表逆序输出（递归）
5. 链表反转（非递归与递归）
6.两个有序单链表的合并（非递归与递归）
7.判断两个单链表是否相交
8.接题7，若相交求第一个交点
9. 删除链表某个节点
10.]]></description><category></category></item><item><title><![CDATA[面试题之二叉树篇]]></title><link>https://blog.youkuaiyun.com/CL512976287/article/details/14163059</link><guid>https://blog.youkuaiyun.com/CL512976287/article/details/14163059</guid><author>CL512976287</author><pubDate>Tue, 05 Nov 2013 11:31:00 +0800</pubDate><description><![CDATA[二叉树是面试中很重要的考点，类似中序非递归遍历、最低公共祖先、镜像、路径求值等问题屡见不鲜。 在这里总结常见的一些题目，并给出模板实现，希望能给求职的朋友一些帮助，也方便自己时时回顾。如有错误，请不吝指教！
1. 有序数组递归建立二叉树
2. 求叶子节点个数
3. 求二叉树深度
4. 求镜像
5. 分层打印，打印一行后换行
6. 判断二叉树是否平衡
8. 判断是否是满二叉树
9. ]]></description><category></category></item></channel></rss>