`
runningsnail
  • 浏览: 4664 次
  • 性别: Icon_minigender_1
  • 来自: 河南
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

昨天去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));
    }
}



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

相关推荐

    ExoFirebug:Firebug的扩展,可帮助调试ExoWeb应用程序

    ExoFirebug是一款专为ExoWeb应用程序设计的Firebug扩展工具,它的主要目标是提供一个强大而便捷的环境,以便开发人员能够有效地调试和优化基于ExoWeb框架的Web应用。Firebug作为一款经典的前端开发者工具,曾经在...

    EXO可爱电脑标志

    标题“EXO可爱电脑标志”指的是为EXO粉丝设计的一系列电脑桌面图标,这些图标具有可爱的风格,并且与韩国流行男子音乐团体EXO相关。电脑标志通常是指在操作系统中使用的图标,它们代表不同的文件类型、应用程序或者...

    TodoApp:使用 ASP.NET MVC 3、Entity Framework 4、jQuery、jQuery UI、OpenID-selector、ExoModel、ExoRule 和 ExoWeb 构建的待办事项列表 Web 应用程序。 托管在 http

    待办事项使用 ASP.NET MVC 3、Entity Framework 4、jQuery、jQuery UI、OpenID-selector、ExoModel、ExoRule 和 ExoWeb 构建的待办事项列表 Web 应用程序。 托管在 。 请参阅。

    exo plateform

    根据给定的信息,以下为从标题、描述、标签和部分内容中提炼出的关于exo plateform的知识点: - exo plateform是一款企业级的内容管理平台,它支持包括知识管理和社区协作在内的多种企业应用。 - 提供的手册名为...

    exo.zip_exo

    标题中的"exo.zip_exo"可能是指一个与"exo"相关的项目或软件的压缩包,而"exo"通常是一个韩国男子音乐团体的名字,这可能是个人项目或者与音乐、娱乐产业有关的软件应用。然而,考虑到标签同样是"exo",我们可以假设...

    Exo-Glove生物机器人手套.pdf

    Exo-Glove 生物机器人手套是一款创新的医疗器械,它结合了生物医学与机械工程的先进技术,专注于帮助小儿麻痹症或肌肉无力患者恢复手部功能。这款手套采用了轻巧且柔性的仿生材料,使得穿戴者不会感到过大的负担。...

    ijkplayer-java ijkplayer-exo ijkplayer_example

    ijkplayer-java、ijkplayer-exo以及ijkplayer_example是ijkplayer在Java层的实现、与ExoPlayer集成的版本以及示例代码,分别对应了ijkplayer在不同场景下的应用。 1. **ijkplayer-java**: 这部分主要是ijkplayer在...

    exo

    标题中的"exo"可能是指一个项目、软件或者代码库的名称,但没有足够的上下文来确定具体含义。不过,从标签"HTML"我们可以推测,这可能与网页开发有关,因为HTML(HyperText Markup Language)是构建网页的基础语言。...

    EXO简约文件夹图标

    【EXO简约文件夹图标】是一组设计简洁、风格独特的文件夹图标,旨在提升用户在计算机操作中的视觉体验。这些图标通常由专业设计师创作,融合了EXO这一流行音乐组合的元素,为普通文件夹赋予了个性化的外观,使得工作...

    exo:Docker容器中的eXo平台(使用eXo Tribe网站论坛来提问或报告问题)

    eXo平台Docker映像 -- 图像 JDK eXo平台 exoplatform / exo:6.2_latest 11 6.2.x企业版 exoplatform / exo:6.1_latest 11 6.1.x企业版 exoplatform / exo:6.0_latest 11 6.0.x企业版 exoplatform / exo...

    com exo的解析

    exo:Exo是使用Swirlds Hashgraph开发应用程序的框架

    Exo哈希图应用程序开发框架 Exo是用于在Swirlds Hashgraph平台上开发应用程序的框架。 首先,Exo提供了功能和应用程序体系结构,用于将事务放入Hashgraph,在接受之后处理这些事务,并将事务注销到持久性存储中。 ...

    exo-install

    "exo-install"是一个与PHP相关的工具或框架,用于安装或...如果你是初学者,建议先熟悉PHP的基础知识,理解Web服务器和数据库的基本工作原理,然后再逐步学习如何利用"exo-install"这样的工具优化你的开发和部署流程。

Global site tag (gtag.js) - Google Analytics