昨天去exoweb的复试感受,及其中一题的部分仅供看下的答案

本文分享了一次在北京Exoweb公司的复试经历,包括工作环境、面试流程和技术面试细节,特别是针对技术面试中的代码优化提供了具体示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

昨天去北京的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.exoweb.DP;

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

public 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[999999];
  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("z耗时: "+(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("m耗时: "+(et-st)+"ss");
  
  return max;
 }

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

 

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值