链表的复制
摘要:问题描述这是从微博上看到的一个面试问题,描述如下:给一个链表,如下定义:1 struct Node2 {3 struct Node* next;4 struct Node* random;5 void*data;6 };其中random 指向链表中的任意一个节点或为空。现在要求对一个这种链表进行深度复制(即复制得到的链表中节点的next, random指向新链表中的相对应位置)。如下图, 第一个是原链表,第二个是复制后的链表,现在要求尽可能快、省地完成这个复制过程。简单分析这个问题的难点显然就在于怎么设置新链表节点的random指针。一种比较直观的解法是类似于深度优先进行复制...
阅读全文
posted @
2013-10-06 13:08
twoon
阅读(9869)
推荐(0)
Brave Balloonists
摘要:题目来自:http://acm.timus.ru/problem.aspx?space=1&num=1049题目的大意是: 输入10个整数:a1,a2,...., a10. 假设他们的乘积:k = a1*a2*....*a10. 求k的公约数的个数N的个位数上是什么数字。 解这个题目的关键在于,怎样求出一个数的公约数的个数.(如6的公约数的个数为4(1,2,3,6)). 很多人一看,很简单啊,直接循环1~k,总可以求出来。 这话虽没错,但只会使蛮力,不懂取巧,除了让自己的形象看起来更像一头牛,通常也会遇到效率上的瓶颈。 这里输入的10个数,有可能会很大,因此直接暴力搜索约数的个数是不行
阅读全文
posted @
2013-03-31 16:34
twoon
阅读(426)
推荐(0)