笔试题 | 数据挖掘岗位 | 数据结构、数据处理

澳门新葡亰手机版 3

写程序需要,匹配验证:

这段时间,在北京游荡了好几圈,黑了3层皮,做了好几家的笔试题,我将整理分享出来,以供大家求职找工作参考。

xxxx-xx-xx xx:xx

写这篇文章前,发生了这样的一段对话,只是为了撸串的交易

日期和时间的合理性.

澳门新葡亰手机版 1

用正则表达式手工写了个:

撸串的故事

/^[0-9]{4}-([1-9]|(0[1-9])|(1[0-2]))-([1-9]|(0[1-9])|([1-2][0-9])|3[0-1])s([1-9]|(0[1-9])|(1[0-9])|(2[0-3])):([1-9]|(0[1-9])|([1-5][0-9]))$/

周末撸串吃什么味的好呢?要好好砍他一顿(阴笑脸)。好了,开始正文下面的内容。

省去pear、类或其它模板的麻烦.

第一题 两数的和

Given an array of integers, find two numbers such that they add up to a
specific target number.The function twoSum should return indices of the
two numbers such that they addup to the target, where index1 must be
less than index2. Please note that your returned answers (both index1
and index2) are not zero-based.You may assume that each input would have
exactly one solution.Input: numbers={2, 7, 11, 15}, target=9 Output:
index1=1, index2=2

题目解读:

给定一个数组,找出两个数的和等于给定的目标值,返回两个数的下标
第一个数的下标比第二个数的小
方案唯一:只存在一个解满足和等于target
澳门新葡亰手机版,下标计数不是从0开始
思路一:暴力法
对所有的元素遍历,将满足条件的打印出来。这种方法的复杂度高,适合小数组。图解如下:

澳门新葡亰手机版 2

这里写图片描述

试着来用python实现下:

# -*- coding: utf-8 -*-
def twoSum(value,target):
    if ((value == None) or (len(value) < 2)):
        return ("zeros or length is too small")
    else:
        lena = len(value)
        for i in range(lena):
            for j in range(i+1,lena):
                if value[i] + value[j] == target:
                    print ("the two number are %d and  %d ,the index are %d and %d " % (value[i],value[j],i,j))

if __name__ == "__main__":
    a = [2,7,6,1]
    target = 9
    print (twoSum(a,target))

还能不能调整下代码呢?优化代码,减少复杂度呢?我想了想,要是原数组是排好序的该多好啊,那就不容易多了。

思路二 :排序法

澳门新葡亰手机版 3

这里写图片描述

嘿嘿,说干就干,来把它实现下。代码如下: