面试-算法 已经排好序的数组中求两个数的和等于N
摘要:
已知一个拍好序的数组,长度为M在其中找两个数,其和为N刚刚拿到这个题目的时候,首先的常规想法是遍历循环求出所有数的和,最终其值为N的就是结果,这个算法时间复杂度为o(N*N)可能还有一些扩展的想法,那就是先把数组中比N大的元素去掉,这样少检查几个元素这是典型的程序员思维,太早开始考虑实现细节了作为一个算法题目首先要把算法复杂度降低下来,然后再考虑常数C。。。不要太早开始考虑这种相对不重要的问题由于要寻找的是一个数对,假设这里存在解的话,考虑用N减去数组中的每一个值生成一个新数组M2,假设M2的值在M中出现,那么就可以找到解,(用两个指针 一个从M的左边 一个从M2的右边)算法复杂度可以做到o( 阅读全文
posted @ 2011-12-23 22:34 听说读写 阅读(2934) 评论(6) 推荐(0) 编辑