当前搜索:

多点两两相连问题

问题描述 如下图,给定偶数个点,两两之间连线,规则为: 每个点仅能与另外一个点连接,如图:不准有1与3类似的连接 不能有剩余的点未与其他点连接。要求输入偶数个点,输出有多少中连接方式? 问题分解 当有两个点时:只有1-2连接的情况 当有四个点时:会有1-2、3-4与1-4、...
阅读(227) 评论(0)

简单实现thread pool

网上看得代码,两个小时时间改进一下源代码,增加log机制: #ifndef __thread_pool_h__ #define __thread_pool_h__ #include typedef struct work_s { void* (*routine)(void...
阅读(1766) 评论(0)

sublime 配置策略

大家好,今天给大家分享一款编辑器:sublime text2     我用过很多编辑器, EditPlus、EmEditor、Notepad++、Notepad2、UltraEdit、Editra、Vim,还有包括netbeans , zendstudio, dreamweaver 等。 最后我遇...
阅读(1607) 评论(0)

一个简易的打log的c代码

log.h  #ifndef _log_h__ #define _log_h__ #define LEVEL_DEBUG 0 #define LEVEL_TUNNINT 1 #define LEVEL_INFO 2 #define LEVEL_WARN 3 #define...
阅读(3389) 评论(0)

Bottom View of a Binary Tree

Given a Binary Tree, we need to print the bottom view from left to right. A node x is there in output if x is the bottommost node at its horizontal d...
阅读(1888) 评论(1)

输入一个无符号整数,用最少的步骤将该数变为1

输入一个无符号整数n,用最少的步骤将该数变为1,当n为偶数时可以采取的步骤是除2的形式,当n为奇数的时候可以采取加1或者减1的操作。 #include #include using namespace std; int min(int a, int b) { if (a < b)...
阅读(2632) 评论(2)

shell编程小示例

1.模拟linnux登录shell #/bin/bash echo -n "login:" read name echo -n "password:" read passwd if [ $name = "cht" -a $passwd...
阅读(2238) 评论(0)

链表翻转。给出一个链表和一个数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,用程序实现

题目中最重要的就是学会一种方法,就是把链表中长度为k的一段从链表中摘除,翻转之后在将其衔接回链表。这是主要的思绪,以下按照此思路给出程序: #include using namespace std; typedef struct LNode { int m_nValue; st...
阅读(5237) 评论(0)

顺时针打印nxn的矩阵

对于如下的矩阵进行顺时针的打印: 1 2 3 4 5 6 7 8 9 打印结果是:1,2,3,6,9,8,7,4,5这个打印很简单,就是按圈进行打印,看这个矩阵的维度是3,那么一共有一圈,和一个独立的点5,如果维度是4,那么就有两圈,没有独立的点,独立点进行单独处理,那...
阅读(2456) 评论(0)

given a single link list (l0, l1, l2, l3,,,ln), and transform it to (l0, ln, l1, ln-2, l2, ln-3)

一道微软的编程题,趁午休的时间做了一下,如果有不对之处,希望指出。 #include #include using namespace std; typedef struct LNode { char m_nValue; struct LNode* p_mNext; }LNode; ...
阅读(2269) 评论(0)

一个字符数组,里面的字符可能是a-z、A-Z、0-9.现在要求对数组进行排序,要求所有小写字符放在最前面,所有大写字符放在中间,所有数字放在最后,而且各部分内部分别有序(创新工场)

一个字符数组,里面的字符可能是a-z、A-Z、0-9.现在要求对数组进行排序,要求所有小写字符放在最前面,所有大写字符放在中间,所有数字放在最后,而且各部分内部分别有序。思路:先进行字符串排序,用堆排序,按降序排列,排列依据字母对应的ascii值。排序之后按字符类别进行翻转。时间复杂度O(nlog...
阅读(5503) 评论(1)

huffman 编码

huffman压缩是一种压缩算法,其中经典的部分就是根据字符出现的频率建立huffman树,然后根据huffman树的构建结果标示每个字符。huffman编码也称为前缀编码,就是每个字符的表示形式不是另一个字符表示的前缀。如果学过c语言版本的数据结构的话,那么会知道其上面的算法的时间复杂度是O(N...
阅读(2174) 评论(0)

不用递归和辅助空间对二叉树进行遍历

递归和非递归的进行二叉树的遍历从某种意义上来讲都是需要辅助空间的。那么进行非递归的和不需要辅助空间的遍历会有这种可能吗?答案是肯定的,应用线索二叉树,这样就能把左子树或者右子树为空的节点利用起来,二叉树线索之后就可能找到某个节点的前区或者后继。一个含有n个节点的二叉树,可定会有n+1个指针是空的。...
阅读(2631) 评论(0)

判断图中是否包含欧拉路径或者欧拉环

欧拉路径的定义:对于无向图来说,欧拉路径就是通过每条边有且只有一次,如果遍历的起始点和终止点都是一个顶点的话,那么就说这个图存在欧拉环。 上图中有三个例子,分别是欧拉路径和欧拉环,以及非欧拉路径。那么怎么来判断一个图中是否含有欧拉路径或者欧拉环呢。首先回想一下图的定义,图中有v个顶点,那...
阅读(5676) 评论(0)

判断一个给定的字符串通过循环移位是否可以包含另一个字符串

比如说给定字符串“ABCD"通过循环移位是否可以包含“CDAB”。 有两种方法,一种方法就是通过创建另外一个字符串,这个字符串是两个“ABCD”的连接,然后应用kmp在新创建的字符串中查找"CDAB",这样的时间复杂度是O(n), 空间复杂度也是O(n),还有另外一...
阅读(3445) 评论(0)

zig tag traversal a binary tree

#include #include using namespace std; typedef struct tree_node_s { int value; struct tree_node_s* lchild; struct tree_node_s* rchild; }tree_node...
阅读(1891) 评论(1)

Length of the longest substring without repeating characters(dp)

给出一个字符串,找出这个字符串中最长连续的而且没有重复字符的子串,并返回它的长度。例如,对于字符串“BDEFGABEF”最长连续且没有重复字符的子串可以是“DEFGAB”或者“DEFGAB”,长度是6。对于字符串“BBBB”,它满足要求的字串的长度是1,即“B”。 首先分析一下,对于给定长度的字...
阅读(2680) 评论(0)

怎么判断一棵树的所有叶子节点都在同一层

给定一棵树,怎么判断它的所有叶子节点都在同一层,这种情况应该是完全二叉树的一种特例,如下图: 如果去掉节点6的话,它是一棵完全二叉树,但是所有的叶子节点不在同一层,下面是层次遍历的一种方法: #include #include using namespace std; ...
阅读(3729) 评论(1)

Connectivity in a directed graph

Given a directed graph, find out whether the graph is strongly connected or not. A directed graph is strongly connected if  there is a path between a...
阅读(2962) 评论(0)

找出一个图中所有的强连通子图

如果一个有向图中的没对顶点都可以从通过路径可达,那么就称这个图是强连通的。一个 strongly connected component就是一个有向图中最大的强连通子图。下图中就有三个强连通子图: 应用kosaraju算法,可以在O(v+e)的时间内找到强连通子图。下面是kosaraju...
阅读(4471) 评论(0)
    个人资料
    等级:
    访问量: 47万+
    积分: 5602
    排名: 5876
    最新评论