摘要: 题目:假设这有一个各种字母组成的字符串,假设这还有另外一个字符串,而且这个字符串里的字母数相对少一些。 判断是否所有小字符串里的字母在大字符串里都有?示例1 :String 1: ABCDEFGHLMNOPQRSString 2: DCGSRQPOM输出true示例2:String 1: ABCDEFGHLMNOPQRSString 2: DCGSRQPOZ输出false方案1:轮询第二个字符串里的每个字母,看它是否同在第一个字符串里。从算法上讲,这需要O(n*m)次操作。方案2:先对这两个字符串的字母进行排序,然后同时对两个字串依次轮询。两个字串的排序需要(常规情况)O(m log... 阅读全文
posted @ 2013-09-15 20:25 欧麦高德 阅读(312) 评论(0) 推荐(0)
摘要: (注:本题是2题的完善)题目:判断集合S之中是否存在两个数之和为指定大小N示例:集合S={1,5,3,7,9,3,2,8} N=10 输出:yes方案1:集合是无序的,那么我们必须将各种两两组合的数相加,来判断,这样的时间复杂度为O(n*n)。方案2:倘若集合是有序的,我们能不能利用有序这个条件呢? 1 我们可以使用一种平均性能不错的排序,先将集合进行排序,O(nlogn)。 2 从前向后逐一遍历集合,若当前元素s[i] = i,有因为集合也是有序的,可以用二分查找来找N-i是否存在。 2.1 若存在,则输出yes 2.2 否则,继续向后... 阅读全文
posted @ 2013-09-15 20:05 欧麦高德 阅读(299) 评论(0) 推荐(0)