代码改变世界

阅读排行榜

微软等公司数据结构+算法面试100题---数组

2012-05-05 20:02 by iamzhaiwei, 349 阅读, 收藏,
摘要: 1.(原第3题)----------------------------------------------------------------------求子数组的最大和题目:输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为O(n)。例如输入的数组为1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为3, 10, -4, 7, 2,因此输出为该子数组的和18。2.(原第5题)------------------------------------查找最小的k个元素题目:输入n个 阅读全文

中缀、前缀、后缀表达式之间的转换

2012-07-19 21:21 by iamzhaiwei, 336 阅读, 收藏,
摘要: 中缀表达式转换为后缀表达式:从前面扫描,从前面输出中缀表达式转换为前缀表达式:从后面扫描,从后面输出前缀表达式和后缀表达式转换为中缀表达式:重建计算树,中序遍历树,子节点的优先级若低于父节点,子树的表达式两端加括号稍后贴上源程序 阅读全文

雅虎面试题─把十进制数(long型)分别以二进制和十六进制形式输出,不能使用printf系列

2012-06-22 15:28 by iamzhaiwei, 336 阅读, 收藏,
摘要: 编程实现:把十进制数(long型)分别以二进制和十六进制形式输出,不能使用printf系列。实现了unsigned long型的转换。// 十进制转换为二进制,十进制数的每1bit转换为二进制的1位数字 char *int_to_bin(unsigned long data) { int bit_num = sizeof(unsigned long) * 8; char *p_bin = new char[bit_num+1]; p_bin[bit_num] = '\0'; for (unsigned int i = 0; i < bit_num; ++i) ... 阅读全文

微软等公司数据结构+算法面试100题--链表

2012-04-28 14:02 by iamzhaiwei, 326 阅读, 收藏,
摘要: 1.(原第7题)----------------------------------------------微软亚院之编程判断俩个链表是否相交给出俩个单向链表的头指针,比如h1,h2,判断这俩个链表是否相交。为了简化问题,我们假设俩个链表均不带环。问题扩展:1.如果链表可能有环列?2.如果需要求出俩个链表相交的第一个节点列?2.(原第13题)----------------------------------------------题目:输入一个单向链表,输出该链表中倒数第k个结点。链表的倒数第0个结点为链表的尾指针。链表结点定义如下: struct ListNode{ int m_nKey; 阅读全文

Linux多线程──生产者消费者

2012-07-12 20:51 by iamzhaiwei, 325 阅读, 收藏,
摘要: 生产者消费者问题这是一个非常经典的多线程题目,题目大意如下:有一个生产者在生产产品,这些产品将提供给若干个消费者去消费,为了使生产者和消费者能并发执行,在两者之间设置一个有多个缓冲区的缓冲池,生产者将它生产的产品放入一个缓冲区中,消费者可以从缓冲区中取走产品进行消费,所有生产者和消费者都是异步方式运行的,但它们必须保持同步,即不允许消费者到一个空的缓冲区中取产品,也不允许生产者向一个已经装满产品且尚未被取走的缓冲区中投放产品。程序:// producer_consumer.cpp ///////////////////////////////////////////////////////// 阅读全文