昨天去exoweb的复试感受

昨天去北京的exoweb复试了,估计是没戏了,但是还想说下感受,仅是个人的感受,代表个人意见:

1. 从工作环境和交谈方面,给人感觉确实不错,很尊重他人,工作环境也是欧美企业的那种自由环境。说点小小的不好,第一轮机试的时候用着那个鼠标啊,复杂,可以换个了。

2. 第一轮机试题不难,记得不管代码写的好不好,先写出来再说,操作系统都是linux的,不过投楼下,是可以连互联网的,我用java语言写的,还顺便看了看javadoc的,呵呵.....

3. 这个过了后估计是人事部经理面试,这个面试对于技术没太高要求的,我的没有要求英文介绍,不过不一定都不让,详细介绍了下自己,最后有个开放性的问题,比如北京一天喝掉多少咖啡之类的.....然后就等通知了.....

4. 办事效率很高的,我第二天就接到复试的通知了,周五下午1:30,这次用了大概2.5~3个小时:
开始是一个感觉很牛的技术人员,英文比汉语好的人,然后就分析前两天做的题,他们会根据你的水平,让你尽量优化代码,提高运行速度,或者减少内存使用时间,(在这里想说下,题有的是网上的,但你千万不要死盯着网上的答案,很有限的,这些答案有效率问题的),交谈起来比较轻松,他们也会根据你的水平尽量的提示你的,只要你足够聪明,这个在提示下,一样可以写出来很优秀的代码的。
然后大概1h后这次面试基本结束,接着等了一会又有两个技术人员。
还是剩余的题,当然中间会聊点轻松的话题的,大概也是优化,这里我开始用java写的代码,考虑机试时间当时就直接使用的java的容器类,要说的是,这些到你面试这关都要重新写的,要求时间快或者空间尽量少。
最后或许还有一个开放的题,

由于本人技术问题,优化当面基本都没有完成,唉,郁闷的是,出了公司,进了地铁一个个都会了,唉,或许不让进这公司吧......

最后贴上自己写的部分试题代码,仅供参考,或许还可以优化。
总结下:题还是要自己想的....不要被网上的结果局限了思维...我复试的时候就有点被局限了......

题目:
数组A[]是一个很大的数组,里面存的数字是1~100000,请你写出一个程序,判断A[]中出现次数最多的一个数。


/**
* 返回次数最多的数 要求效率
* @param A
* @return
*/
public static int count(int[] A) {
int countTemp = 1;
int max = -1;
if(A==null || A.length<1) {
return max;
}
max = A[0];
int[] num = new int[100000];//与A的存储数有关
for (int i = 0; i < A.length; i++) {
num[A[i]]++;
if(num[A[i]]>countTemp) {
max = A[i];
countTemp = num[A[i]];
}
}
return max;
}

/**
* 内存使用低
* @param A
* @return
*/
public static int count1(int[] A) {
int countTemp = 1;
int maxCount = 1;
int max = -1;
if(A==null || A.length<1) {
return max;
}
max = A[0];
for (int i = 0; i < A.length; i++) {
for(int j=0; j<A.length; j++) {
if(A[i]==A[j]) {
countTemp++;
}
}
if(countTemp>maxCount) {
maxCount = countTemp;
max = A[i];
}
countTemp = 1;
}
return max;
}




package com.sample.ejb3.test;

import java.util.HashMap;
import java.util.Map;

class Mystery {

public static int count(int[] A) {
int countTemp = 1;
int max = -1;
long st,et;

st = System.nanoTime();

if(A==null || A.length<1) {
return max;
}
max = A[0];
int[] num = new int[999];
for (int i = 0; i < A.length; i++) {
num[A[i]]++;
if(num[A[i]]>countTemp) {
max = A[i];
countTemp = num[A[i]];
}
}

et = System.nanoTime();
System.out.println("count耗时: "+(et-st)+"ss");

return max;
}

public static int mcount(int[] A) {
int countTemp = 1;
int max = -1;
long st,et;

st = System.nanoTime();

if(A==null || A.length<1) {
return max;
}
max = A[0];
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
for (int i = 0; i < A.length; i++) {
if(map.containsKey(A[i])){
map.put(A[i], map.get(A[i])+1);
}else{
map.put(A[i], 1);
}
int ss = map.get(A[i]);
if(ss>countTemp){
max = A[i];
countTemp = ss;
}
}

et = System.nanoTime();
System.out.println("mcount耗时: "+(et-st)+"ss");

return max;
}

public static int mmcount(int[] A) {
int countTemp = 1;
int maxCount = 1;
int max = -1;
long st,et;

st = System.nanoTime();

if(A==null || A.length<1) {
return max;
}
max = A[0];
for (int i = 0; i < A.length; i++) {
for(int j=0; j<A.length; j++) {
if(A[i]==A[j]) {
countTemp++;
}
}
if(countTemp>maxCount) {
maxCount = countTemp;
max = A[i];
}
countTemp = 1;
}

et = System.nanoTime();
System.out.println("mmcount耗时: "+(et-st)+"ss");

return max;
}



public static void main(String[] arg){
int s[] = new int[999];
for(int i=0;i<998;i++){
s[i]=i;
}
s[998]=555;
System.out.println(Mystery.count(s));
System.out.println(Mystery.mcount(s));
System.out.println(Mystery.mmcount(s));
}
}



最后祝福大家找到合适的工作,如果代码有问题,请回复下。谢谢,不想害了他人。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值