<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[cxllyg的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/cxllyg</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; cxllyg]]></copyright><item><title><![CDATA[【2013年06月26日】趋势科技夏令营面试]]></title><link>https://blog.youkuaiyun.com/cxllyg/article/details/9182649</link><guid>https://blog.youkuaiyun.com/cxllyg/article/details/9182649</guid><author>cxllyg</author><pubDate>Wed, 26 Jun 2013 21:24:25 +0800</pubDate><description><![CDATA[中午10点钟进去的，面试官是个很和蔼的技术男，先说我简历上的自我评价怎么这么少的字，然后和我讨论了毕业论文，技术问题主要了以下几个：
（1）堆和栈的区别；
（2）进程和线程的区别，为什么要提出线程的概念；
（3）TCP三次握手过程，为什么只要三次不要四次；
（4）用过gdb没，linux下在一个文件中查找一个字符串的命令是什么；
（5）TCP和UDP的区别，为什么有的程序要用UDP而不用]]></description><category></category></item><item><title><![CDATA[【并查集】判断是否为树]]></title><link>https://blog.youkuaiyun.com/cxllyg/article/details/8225835</link><guid>https://blog.youkuaiyun.com/cxllyg/article/details/8225835</guid><author>cxllyg</author><pubDate>Mon, 26 Nov 2012 15:05:42 +0800</pubDate><description><![CDATA[【问题描述】
树是一种大家都不陌生的数据结构，它有可能是一颗空树或是一些满足要求的节点连接而成的有向边的集合。
一棵树只有一个根节点，根节点没有指向它的边。
除了根节点的每一个节点都只有一条边指向它。
出现环的图都不是树。
对一些节点连接而成的有向边的集合进行判定，判定每一组的输入数据构成的图是否是一棵树。
【输入】
每输入一对都为0的数时，表示一组数据输入完毕。每条边由一对正整数表]]></description><category></category></item><item><title><![CDATA[【贪心】删数问题]]></title><link>https://blog.youkuaiyun.com/cxllyg/article/details/8213312</link><guid>https://blog.youkuaiyun.com/cxllyg/article/details/8213312</guid><author>cxllyg</author><pubDate>Thu, 22 Nov 2012 17:13:54 +0800</pubDate><description><![CDATA[【问题描述】
给定n位整数q，去掉其中任意k
比如，178543删除四个数字后，最小的新数是13。
贪心策略：最近下降点优先。
#include 
#include 
#include 
using namespace std;

void delek(vector &s, int k)
{
	int n=s.size();
	if(k>=n)
		;
	else]]></description><category></category></item><item><title><![CDATA[【贪心】活动安排问题]]></title><link>https://blog.youkuaiyun.com/cxllyg/article/details/8212705</link><guid>https://blog.youkuaiyun.com/cxllyg/article/details/8212705</guid><author>cxllyg</author><pubDate>Thu, 22 Nov 2012 15:46:42 +0800</pubDate><description><![CDATA[活动安排问题就是要在所给的活动集合中选出最大的相容活动子集合，是可以用贪心算法有效求解的很好例子。该问题要求高效地安排一系列争用某一公共资源的活动。贪心算法提供了一个简单、漂亮的方法使得尽可能多的活动能兼容地使用公共资源。
    设有n个活动的集合E={1,2,…,n}，其中每个活动都要求使用同一资源，如演讲会场等，而在同一时间内只有一个活动能使用这一资源。每个活动i都有一个要求使用该资源的起]]></description><category></category></item><item><title><![CDATA[会场安排问题]]></title><link>https://blog.youkuaiyun.com/cxllyg/article/details/8200395</link><guid>https://blog.youkuaiyun.com/cxllyg/article/details/8200395</guid><author>cxllyg</author><pubDate>Mon, 19 Nov 2012 17:31:54 +0800</pubDate><description><![CDATA[【问题描述】
假设要在足够多的会场里安排一批活动，并希望使用尽可能少的会场。（这个问题实际上是著名的图着色问题。若将每一个活动作为图的一个顶点，不相容活动间用边相连。使相邻顶点有不同颜色的最小着色数，相应于要找的最小会场数。）
【数据输入】
第一行有1个正整数k，表示有k个待安排的活动。接下来的k行中，每行有两个正整数，分别表示k个待安排的活动开始时间和活动结束时间。时间以0点开始的分钟计。]]></description><category></category></item><item><title><![CDATA[【百度2012年10月20日笔试】1.一个数被3除余2，被5除余3，被7除余2，求满足条件的前N个数。]]></title><link>https://blog.youkuaiyun.com/cxllyg/article/details/8147556</link><guid>https://blog.youkuaiyun.com/cxllyg/article/details/8147556</guid><author>cxllyg</author><pubDate>Mon, 05 Nov 2012 09:47:18 +0800</pubDate><description><![CDATA[用“迭代法”求解（通用的解法）
1）从“最大的除数7”开始思考：假设要求的这个数设为N=7a+2，（a=1，2，3……）
2）考虑其余的条件：被3除余2。即：  3│7a+2-2,
    整理得：3│a，即：a=3b,(b=1，2，3……)
    N=7×3b+2=21b+2
3)考虑最后一个条件：被5除余3。即：  5│21b+2-3,    整理得：5│b-1，即：b=1+5c,]]></description><category></category></item><item><title><![CDATA[【百度2012年10月20日笔试】2.求字符串中连续重复字母的最大重复次数, 如: aabbbbcadd 的最大字母重复次数为 4, 有四个连续的b. 要求用递归实现.]]></title><link>https://blog.youkuaiyun.com/cxllyg/article/details/8147543</link><guid>https://blog.youkuaiyun.com/cxllyg/article/details/8147543</guid><author>cxllyg</author><pubDate>Mon, 05 Nov 2012 09:42:54 +0800</pubDate><description><![CDATA[#include 
using namespace std;

int CountLengest(char* pBuf)
{
	int result=0;
	char *p=pBuf;
	if(*pBuf=='\0')
		return result;

	while((*pBuf!='\0') && (*p==*pBuf))
	{
		result++;
		pBuf+]]></description><category></category></item><item><title><![CDATA[【设计模式】组合模式]]></title><link>https://blog.youkuaiyun.com/cxllyg/article/details/8104458</link><guid>https://blog.youkuaiyun.com/cxllyg/article/details/8104458</guid><author>cxllyg</author><pubDate>Tue, 23 Oct 2012 20:42:52 +0800</pubDate><description><![CDATA[定义：将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。
范例一：
using System;
using System.Collections.Generic;
using System.Text;

namespace 组合模式
{
    abstract class Component
    {]]></description><category></category></item><item><title><![CDATA[【设计模式】备忘录模式]]></title><link>https://blog.youkuaiyun.com/cxllyg/article/details/8103455</link><guid>https://blog.youkuaiyun.com/cxllyg/article/details/8103455</guid><author>cxllyg</author><pubDate>Tue, 23 Oct 2012 16:30:07 +0800</pubDate><description><![CDATA[定义：在不破坏封装的前提下，捕获并且保存一个对象的内部状态，这样可以将对象恢复到原先保存的状态。正如很多软件中，按Ctrl-Z会取消最后一次用户操作，即撤销（Undo）操作。
一般情况下，备忘录模式有三个类：
Memento：备忘录；  Originator：原发器；    Caretaker：看管者，负责看管备忘录。    
using System;
using System.Coll]]></description><category></category></item><item><title><![CDATA[【设计模式】责任链模式]]></title><link>https://blog.youkuaiyun.com/cxllyg/article/details/8103198</link><guid>https://blog.youkuaiyun.com/cxllyg/article/details/8103198</guid><author>cxllyg</author><pubDate>Tue, 23 Oct 2012 15:38:05 +0800</pubDate><description><![CDATA[定义：避免请求发送者与接收者耦合在一起，让多个对象都有可能接收请求，将这些请求连接成一条链，并且沿着这条链传递请求，直到有对象处理它为止。
实现关键：在每一级责任者里设置其下一级责任者，如果请求它不能处理，就转给其下一级，从而整个形成一条责任链。
实例：请假加薪审批
using System;
using System.Collections.Generic;
using System.]]></description><category></category></item><item><title><![CDATA[【设计模式】单例模式]]></title><link>https://blog.youkuaiyun.com/cxllyg/article/details/8102033</link><guid>https://blog.youkuaiyun.com/cxllyg/article/details/8102033</guid><author>cxllyg</author><pubDate>Tue, 23 Oct 2012 11:34:18 +0800</pubDate><description><![CDATA[单例模式确保某一个类只有一个实例，而且自行实例化并向整个系统提供这个实例。这个类成为单例类，它提供全局访问的方法。单例模式的要点有三个：一是某个类只能有一个实例；二是它必须自行创建这个实例；三是它必须自行向整个系统提供这个实例。
实现一：普通单例模式
using System;
using System.Collections.Generic;
using System.Text;]]></description><category></category></item><item><title><![CDATA[【设计模式】观察者模式]]></title><link>https://blog.youkuaiyun.com/cxllyg/article/details/8101757</link><guid>https://blog.youkuaiyun.com/cxllyg/article/details/8101757</guid><author>cxllyg</author><pubDate>Tue, 23 Oct 2012 10:48:46 +0800</pubDate><description><![CDATA[观察者模式：定义对象间的一种一对多的依赖关系，使得每当一个对象改变状态时，则其他相关依赖对象皆得到通知并被自动更新。
实现一：被观察者需要有添加和删除观察者的功能，当被观察者状态变化时，调用其观察者的更新函数。
猫和老鼠
using System;
using System.Collections.Generic;
using System.Text;
using System.Col]]></description><category></category></item><item><title><![CDATA[【回溯法】n皇后问题]]></title><link>https://blog.youkuaiyun.com/cxllyg/article/details/8055596</link><guid>https://blog.youkuaiyun.com/cxllyg/article/details/8055596</guid><author>cxllyg</author><pubDate>Wed, 10 Oct 2012 11:23:06 +0800</pubDate><description><![CDATA[一。递归回溯
#include 
using namespace std;

#define N 8
int sum=0;
int *x=new int[N+1];

bool place(int k)
{
	int i;
	for(i=1; i<k; i++)
	{
		if(x[i]==x[k] || abs(i-k)==abs(x[i]-x[k]))
			ret]]></description><category></category></item><item><title><![CDATA[【回溯法】实现给定二进制位数的所有组合]]></title><link>https://blog.youkuaiyun.com/cxllyg/article/details/8047126</link><guid>https://blog.youkuaiyun.com/cxllyg/article/details/8047126</guid><author>cxllyg</author><pubDate>Mon, 08 Oct 2012 10:14:09 +0800</pubDate><description><![CDATA[#include 
using namespace std;

#define N 4

int *x=new int[N];

void backtrack(int t)
{
	int i=0;
	if(t>N-1) 
	{
		for(i=0; i<N; i++)
			cout<<x[i]<<" ";
		cout<<endl;
	}
	else
	{]]></description><category></category></item><item><title><![CDATA[不使用中间变量实现strlen函数]]></title><link>https://blog.youkuaiyun.com/cxllyg/article/details/8000051</link><guid>https://blog.youkuaiyun.com/cxllyg/article/details/8000051</guid><author>cxllyg</author><pubDate>Thu, 20 Sep 2012 14:28:18 +0800</pubDate><description><![CDATA[2009腾迅校园招聘笔试题：不使用中间变量求const字符串长度，即实现求字符串长度库函数strlen函数。函数接口声明如下：int strlen(const char *p)；
思路分析：
     “不使用中间变量”是说程序员不能显式的申请内存，即不能有局部变量或者动态内存申请。如果函数自动申请栈内存或者使用寄存器存储变量，或者使用立即数寻址即常量，那么就相当于“不使用中间变量”。从函数原]]></description><category></category></item><item><title><![CDATA[给定能随机生成整数1到5的函数，写出能随机生成整数1到7的函数。]]></title><link>https://blog.youkuaiyun.com/cxllyg/article/details/7997408</link><guid>https://blog.youkuaiyun.com/cxllyg/article/details/7997408</guid><author>cxllyg</author><pubDate>Wed, 19 Sep 2012 18:49:13 +0800</pubDate><description><![CDATA[#include 
#include 
using namespace std;

int rand5()
{
	return (rand()%5+1);
}

void main()
{
	int a;
	while((a=rand5()*5+rand5())>26);
	cout<< (a-3)/3<<endl;
}

代码解释：
1. 通过 rand5()*]]></description><category></category></item><item><title><![CDATA[N!末尾0的个数]]></title><link>https://blog.youkuaiyun.com/cxllyg/article/details/7991470</link><guid>https://blog.youkuaiyun.com/cxllyg/article/details/7991470</guid><author>cxllyg</author><pubDate>Tue, 18 Sep 2012 14:06:34 +0800</pubDate><description><![CDATA[参考编程之美2.2不要被阶乘吓倒
N!末尾0的个数，即等于因子10的个数，又10=2*5，所以N!末尾0的个数即因子5的个数（因为能被2整除的数出现的频率比能被5整除的数高得多）。
#include 
using namespace std;

int Count1(int n)
{
	int count=0;
	int j;
	for(int i=1; i<=n; i++)]]></description><category></category></item><item><title><![CDATA[大数相乘]]></title><link>https://blog.youkuaiyun.com/cxllyg/article/details/7988115</link><guid>https://blog.youkuaiyun.com/cxllyg/article/details/7988115</guid><author>cxllyg</author><pubDate>Mon, 17 Sep 2012 16:10:54 +0800</pubDate><description><![CDATA[利用字符串处理大数
#include 
#include 
using namespace std;

void multiply(const char* a, const char* b)
{
	int i, j, ca, cb, *s;
	ca=strlen(a);
	cb=strlen(b);
	s=(int *)malloc(sizeof(int)*(ca+cb));]]></description><category></category></item><item><title><![CDATA[两个数组a[N]，b[N]，其中A[N]的各个元素值已知，现给b[i]赋值]]></title><link>https://blog.youkuaiyun.com/cxllyg/article/details/7986791</link><guid>https://blog.youkuaiyun.com/cxllyg/article/details/7986791</guid><author>cxllyg</author><pubDate>Mon, 17 Sep 2012 11:08:47 +0800</pubDate><description><![CDATA[【题目描述】
两个数组a[N]，b[N]，其中A[N]的各个元素值已知，现给b[i]赋值，b[i]
 = a[0]*a[1]*a[2]...*a[N-1]/a[i]；
要求：
1.不准用除法运算
2.除了循环计数值，a[N],b[N]外，不准再用其他任何变量（包括局部变量，全局变量等）
3.满足时间复杂度O（n），空间复杂度O（1）
 
【题目来源】腾讯2012
 
【题目分析]]></description><category></category></item><item><title><![CDATA[洗牌算法：随机打乱一个数组的顺序]]></title><link>https://blog.youkuaiyun.com/cxllyg/article/details/7986352</link><guid>https://blog.youkuaiyun.com/cxllyg/article/details/7986352</guid><author>cxllyg</author><pubDate>Mon, 17 Sep 2012 09:37:23 +0800</pubDate><description><![CDATA[给定一个数组，要求把数组内元素的顺序随机打乱，然后输出，主要是要保证效率。
这其实是个洗牌算法，首先从所有元素中随机选取一个与第一个元素进行交换，然后在第二个之后选择一个元素与第二个交换，直到最后一个元素。这样能确保每个元素在每个位置的概率都是1/n。
 
#include 
#include 
#include 
#include 
using namespace std;]]></description><category></category></item></channel></rss>