2014年9月18日,今天早上面了一家创业小公司,已经融资了几轮,是做互联网广告的。
投的测试开发,但我真的很久没写过代码了,所以有点虚,投的时候也就看到职位需求没特别说代码能力就上了。
结果面了3轮,基本都是写比较基础的算法,然后自己设计测试案例,看有几个能跑过。
汗一个,基本我写的代码跑我写的测试案例,就没多少能过的。。。
第一轮:两个数组A和B,A里面无重复数字,B里面也无重复数字,B里面所有的元素都出现在A里面,要求按照B的顺序对A进行修改。
比如: A=[1,2,3,4,5,6] B=[5,1,3],那么修改后,A变为[5,2,1,4,3,6]。
这个题目变化下是A中有重复数字,做响应改变是exist函数返回每个数出现的次数,然后计算时根据次数重复赋值。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void display(int[] x)
{
foreach (int i in x)
{
Console.Write(i.ToString()+" ");
}
Console.WriteLine();
}
static bool exist(int x, int[] y)
{
for (int i = 0; i < y.Length; i++)
{
if (x == y[i]) return true;
}
return false;
}
static void Main(string[] args)
{
int[] a = {1, 2, 3, 4, 5, 6};
int[] b = {5, 1, 3};
display(a);
display(b);
int j=0;
for (int i = 0; i < a.Length; i++)
{
if (exist(a[i], b))
{
a[i]=b[j];
j++;
}
}
display(a);
Console.ReadKey();
}
}
}
第二轮:给出3个整形值,如果不能组成三角形,返回-1;普通三角形,返回0;等腰三角形,返回2;等边三角形,返回3;
我的代码只能说功能上是通过的,不过代码质量很差。。。
这里面试的时候问我哪里会越界,我说两边相加时,然后问怎么规避:
想了半天,两个办法:显示转成float(白痴回答。。。);每个数计算时先除以2
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static int triangle(int x, int y, int z)
{
int i = -1;
if (x <= 0 || y <= 0 || z <= 0) return i;
if (x + y <= z || x + z <= y || y + z <= x) return i;
i = 0;
if (x == y || x == z || y == z) i = 2;
if (x == y && x == z) i = 3;
return i;
}
static void Main(string[] args)
{
Console.WriteLine(triangle(1, 1, 9).ToString());
Console.WriteLine(triangle(4, 4, 5).ToString());
Console.WriteLine(triangle(-1, 3, 3).ToString());
Console.WriteLine(triangle(3, 3, 3).ToString());
Console.WriteLine(triangle(3, 4, 5).ToString());
Console.ReadKey();
}
}
}
第三轮:单链表反转
参考http://ceeji.net/blog/reserve-linked-list-cpp/
http://blog.csdn.net/shichexixi/article/details/7873474
写的很详细。
下午继续面了一家互联网翘楚企业,面了两轮,一轮测试专家,一轮测试主管。
两轮都是谈的工作经验比较多,不过该公司用的都是Java,而我只接触过C++和C#,所以都问了如果学Java要多久的问题。
一些记得需要改进的地方:写代码能力要加强(暂时不知道咋弄,以后一边写自动化一边加强),shell脚本的搜索等(不太清楚,感觉用python可以替代,先把python学完,再看是否有必要弄本shell的看看),接触移动端的东西(我也很想,不过目前没啥门路,只能有空的时候自己捣鼓下),测试框架的使用(小妹推荐了TestNG,看以后能不能结合工作一起用)
基于此,目前的自我学习计划是python,mysql,Java,TestNG,Mobile