<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[tinglu的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/tinglu</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; tinglu]]></copyright><item><title><![CDATA[百度三面：找出数组中所有这样的数，大于等于左边的所有数，小于等于右边的所有的数]]></title><link>https://blog.youkuaiyun.com/tinglu/article/details/12790399</link><guid>https://blog.youkuaiyun.com/tinglu/article/details/12790399</guid><author>tinglu</author><pubDate>Wed, 16 Oct 2013 20:43:51 +0800</pubDate><description><![CDATA[#include 
using namespace std;

void func(int *a, int len, int &b1, int &b2)
{
	int a1, a2;
	b1 = a1 = 0;
	b2 = a2 = len-1;
	int l_min, r_max;
	l_min = a[a1];
	r_max = a[a2];

	while(a1<a2)
	{
		if(a[]]></description><category></category></item><item><title><![CDATA[n后问题]]></title><link>https://blog.youkuaiyun.com/tinglu/article/details/12343495</link><guid>https://blog.youkuaiyun.com/tinglu/article/details/12343495</guid><author>tinglu</author><pubDate>Sun, 06 Oct 2013 12:57:06 +0800</pubDate><description><![CDATA[关键问题：不在同行，同列，斜线上。即对任意两行，!(x[r1]==x[r] || abs(r1-r)==abs(x[r1]-x[r]))。用回溯法，通过此条件进行减枝。

#include  
using namespace std;

void print(int *x, int n)
{
	int i, j;
	for(i=0; i<n; i++)
	{
		for(j=0; j<n; j]]></description><category></category></item><item><title><![CDATA[输出递增数组中和为sum的两个数]]></title><link>https://blog.youkuaiyun.com/tinglu/article/details/12322309</link><guid>https://blog.youkuaiyun.com/tinglu/article/details/12322309</guid><author>tinglu</author><pubDate>Sat, 05 Oct 2013 23:18:08 +0800</pubDate><description><![CDATA[算法本身不复杂，但是提供了一个跟有序数组相关的一个思路：记录首尾指针，由两边向中间缩进。

#include  
using namespace std;

bool findPairWithSum(int* a, int len, int sum, int& n1, int& n2)
{
	if(a==NULL || lena[len-1]+a[len-2])
		return false;]]></description><category></category></item><item><title><![CDATA[数组中的逆序对]]></title><link>https://blog.youkuaiyun.com/tinglu/article/details/12309663</link><guid>https://blog.youkuaiyun.com/tinglu/article/details/12309663</guid><author>tinglu</author><pubDate>Sat, 05 Oct 2013 14:18:53 +0800</pubDate><description><![CDATA[比归并排序只多了一句输出。

#include  
using namespace std;

void getInversePair(int* a, int* b, int low, int mid, int high)
{
	int l=low, m=mid+1, k=low, j;
	while(l<=mid && m<=high)
	{
		if(a[l]>a[m])
		{
			f]]></description><category></category></item><item><title><![CDATA[第一个只出现一次的字符]]></title><link>https://blog.youkuaiyun.com/tinglu/article/details/12308737</link><guid>https://blog.youkuaiyun.com/tinglu/article/details/12308737</guid><author>tinglu</author><pubDate>Sat, 05 Oct 2013 13:46:56 +0800</pubDate><description><![CDATA[#include  
using namespace std;

#define min(x, y) (x)<(y)?(x):(y) 

char getFirstSingleChar(char* s)
{
	if(s==NULL || *s==0)
		return 0;
	int len = strlen(s);
	unsigned int h_table[256] = {0};
	int i]]></description><category></category></item><item><title><![CDATA[丑数，只包含因子2、3、5的数]]></title><link>https://blog.youkuaiyun.com/tinglu/article/details/12308505</link><guid>https://blog.youkuaiyun.com/tinglu/article/details/12308505</guid><author>tinglu</author><pubDate>Sat, 05 Oct 2013 13:30:26 +0800</pubDate><description><![CDATA[#include  
using namespace std;

#define min(x, y) (x)<(y)?(x):(y) 

int getUglyNumber(int index)
{
	if(index<0)
		return 1;

	int* nums = new int[index];
	nums[0] = 1;
	int next_id = 1;

	int* ugly2]]></description><category></category></item><item><title><![CDATA[给定一系列字符串集合，合并有交集的集合，合并完后集合之间无交集]]></title><link>https://blog.youkuaiyun.com/tinglu/article/details/12293265</link><guid>https://blog.youkuaiyun.com/tinglu/article/details/12293265</guid><author>tinglu</author><pubDate>Fri, 04 Oct 2013 23:00:00 +0800</pubDate><description><![CDATA[#pragma warning(disable:4786)

#include  
#include  
#include 
#include  

using namespace std; 

int main()
{ 
	//初始化数据
	vector > v;
	vector v1;
	v1.push_back("aaa");
	v1.push_back("bbb");
	v1.push_b]]></description><category></category></item><item><title><![CDATA[memcached]]></title><link>https://blog.youkuaiyun.com/tinglu/article/details/12277679</link><guid>https://blog.youkuaiyun.com/tinglu/article/details/12277679</guid><author>tinglu</author><pubDate>Fri, 04 Oct 2013 13:55:23 +0800</pubDate><description><![CDATA[基本问题

1、memcached的基本设置
1）启动Memcache的服务器端
# /usr/local/bin/memcached -d -m 10 -u root -l 192.168.0.200 -p 12000 -c 256 -P /tmp/memcached.pid

-d选项是启动一个守护进程，
-m是分配给Memcache使用的内存数量，单位是MB，我这里是10MB，]]></description><category></category></item><item><title><![CDATA[用map求交集]]></title><link>https://blog.youkuaiyun.com/tinglu/article/details/12263333</link><guid>https://blog.youkuaiyun.com/tinglu/article/details/12263333</guid><author>tinglu</author><pubDate>Fri, 04 Oct 2013 00:04:13 +0800</pubDate><description><![CDATA[#include 
#include 

using namespace std;

int main()
{
	int a[] = {1,2,3,4,5,6,7,8,9};
	int b[] = {2,4,6,8,10};
	int c[10];
	map m;
	int len_a = sizeof(a)/sizeof(a[0]);
	int len_b = sizeof(b)/sizeof(]]></description><category></category></item><item><title><![CDATA[剑指offer-33：把数组排成最小的数]]></title><link>https://blog.youkuaiyun.com/tinglu/article/details/12255077</link><guid>https://blog.youkuaiyun.com/tinglu/article/details/12255077</guid><author>tinglu</author><pubDate>Thu, 03 Oct 2013 15:37:04 +0800</pubDate><description><![CDATA[#include 
using namespace std;

const int N = 20;
char s[N][N];
char com1[2*N+1];
char com2[2*N+1];

int comp(const void *v1, const void *v2)
{
	strcpy(com1, (char*)v1);
	strcat(com1, (char*)v2);
	str]]></description><category></category></item><item><title><![CDATA[最长回文：动态规划]]></title><link>https://blog.youkuaiyun.com/tinglu/article/details/12146107</link><guid>https://blog.youkuaiyun.com/tinglu/article/details/12146107</guid><author>tinglu</author><pubDate>Sat, 28 Sep 2013 23:37:26 +0800</pubDate><description><![CDATA[#include 
using namespace std;

void huiwen(char* a)
{
	if(a==NULL)
		return ;
	int len = strlen(a);
	bool table[100][100] = {false};
	int max, max_id;

	int i,j;
	for(i=0; i<len; i++)
		table[i][i] =]]></description><category></category></item><item><title><![CDATA[百度笔试：最长回文（中心扩展法）]]></title><link>https://blog.youkuaiyun.com/tinglu/article/details/12145983</link><guid>https://blog.youkuaiyun.com/tinglu/article/details/12145983</guid><author>tinglu</author><pubDate>Sat, 28 Sep 2013 23:23:40 +0800</pubDate><description><![CDATA[#include 
using namespace std;

void huiwen(char* a, int& max, int& max_id)
{
	if(a==NULL || *a=='\0')
	{
		max = 0;
		max_id = 0;
		return ;
	}
	int len = strlen(a);
	int i, k1, k2;
	max = 1;
	max_id]]></description><category></category></item><item><title><![CDATA[百度笔试：求大于n的最小的不重复数，不重复数是指相邻两个数不相同]]></title><link>https://blog.youkuaiyun.com/tinglu/article/details/12145115</link><guid>https://blog.youkuaiyun.com/tinglu/article/details/12145115</guid><author>tinglu</author><pubDate>Sat, 28 Sep 2013 22:27:29 +0800</pubDate><description><![CDATA[#include 
using namespace std;

int next_norepeat(unsigned int n)
{
	int pow, i, j;
	i=++n;
	pow=0;
	while(i)
	{
		pow++;
		i/=10;
	}

	int *a = new int[pow+1];
	a[0] = 0;
	for(i=pow, j=n; i>0; i--, j]]></description><category></category></item><item><title><![CDATA[组合]]></title><link>https://blog.youkuaiyun.com/tinglu/article/details/12110175</link><guid>https://blog.youkuaiyun.com/tinglu/article/details/12110175</guid><author>tinglu</author><pubDate>Fri, 27 Sep 2013 20:21:42 +0800</pubDate><description><![CDATA[#include 
#include   
using namespace std;  
  
  
//函数功能 ： 从一个字符串中选m个元素
//函数参数 ： pStr为字符串， m为选的元素个数， result为选中的
//返回值 ：   无
void Combination_m(char *pStr, int m, vector &result)
{
	if(pStr == NULL ||]]></description><category></category></item><item><title><![CDATA[将二叉搜索树转换成双向链表]]></title><link>https://blog.youkuaiyun.com/tinglu/article/details/12108403</link><guid>https://blog.youkuaiyun.com/tinglu/article/details/12108403</guid><author>tinglu</author><pubDate>Fri, 27 Sep 2013 18:56:57 +0800</pubDate><description><![CDATA[#include 
#include   
using namespace std;  
  
struct node{
    int data;
    node* lchild;
    node* rchild;
};
                    
node* buildBTree(int* a, int &i)
{
    if(a==NULL || a[i]==-1)
  ]]></description><category></category></item><item><title><![CDATA[二叉树中和为某一值的路径]]></title><link>https://blog.youkuaiyun.com/tinglu/article/details/12090593</link><guid>https://blog.youkuaiyun.com/tinglu/article/details/12090593</guid><author>tinglu</author><pubDate>Fri, 27 Sep 2013 13:33:31 +0800</pubDate><description><![CDATA[#include 
#include   
using namespace std;  
  
struct node{
    int data;
    node* lchild;
    node* rchild;
};

void find_path(node* r, int exceptedSum, vector &path,
                    int& curSu]]></description><category></category></item><item><title><![CDATA[打印1到最大的n位数]]></title><link>https://blog.youkuaiyun.com/tinglu/article/details/12059195</link><guid>https://blog.youkuaiyun.com/tinglu/article/details/12059195</guid><author>tinglu</author><pubDate>Thu, 26 Sep 2013 17:00:31 +0800</pubDate><description><![CDATA[剑指offer用的是字符串，还要苦逼的字符串比较，看是否进位。
直接用整型数组来保存。

#include 
#include   
using namespace std;  

//一个int保存几位数
const int int_num = 2;

//每位数最大值，超过这个要进位（不包括最高位）
const int int_max = 99;
  
void func()
{
   ]]></description><category></category></item><item><title><![CDATA[链表翻转，每k个进行翻转]]></title><link>https://blog.youkuaiyun.com/tinglu/article/details/11835641</link><guid>https://blog.youkuaiyun.com/tinglu/article/details/11835641</guid><author>tinglu</author><pubDate>Thu, 19 Sep 2013 22:49:28 +0800</pubDate><description><![CDATA[链表翻转。给出一个链表和一个数k，比如链表1→2→3→4→5→6，k=2，则翻转后2→1→4→3→6→5，若k=3,翻转后3→2→1→6→5→4，若k=4，翻转后4→3→2→1→5→6

#include 
using namespace std;

struct node{
    int data;
    node* next;
};

node* init(int n)
{
    n]]></description><category></category></item><item><title><![CDATA[利用二级指针删除节点]]></title><link>https://blog.youkuaiyun.com/tinglu/article/details/11816835</link><guid>https://blog.youkuaiyun.com/tinglu/article/details/11816835</guid><author>tinglu</author><pubDate>Wed, 18 Sep 2013 17:29:39 +0800</pubDate><description><![CDATA[#include 
using namespace std;

struct node{
    int data;
    node* next;
};

void remove(node** head, int value)
{
    if(head == NULL)
        return ;
    node** n = head;
    node* cur;
    while]]></description><category></category></item><item><title><![CDATA[已知先序，中序，求后序]]></title><link>https://blog.youkuaiyun.com/tinglu/article/details/11812921</link><guid>https://blog.youkuaiyun.com/tinglu/article/details/11812921</guid><author>tinglu</author><pubDate>Wed, 18 Sep 2013 16:18:10 +0800</pubDate><description><![CDATA[#include 
using namespace std;

void func(int* pre, int* mid, int pre_left, int pre_right,
                int mid_left, int mid_right)
{
    if(pre_left == pre_right)
    {
        cout<<pre[pre_left]]></description><category></category></item></channel></rss>