昨天去北京的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是一款专为ExoWeb应用程序设计的Firebug扩展工具,它的主要目标是提供一个强大而便捷的环境,以便开发人员能够有效地调试和优化基于ExoWeb框架的Web应用。Firebug作为一款经典的前端开发者工具,曾经在...
标题“EXO可爱电脑标志”指的是为EXO粉丝设计的一系列电脑桌面图标,这些图标具有可爱的风格,并且与韩国流行男子音乐团体EXO相关。电脑标志通常是指在操作系统中使用的图标,它们代表不同的文件类型、应用程序或者...
待办事项使用 ASP.NET MVC 3、Entity Framework 4、jQuery、jQuery UI、OpenID-selector、ExoModel、ExoRule 和 ExoWeb 构建的待办事项列表 Web 应用程序。 托管在 。 请参阅。
根据给定的信息,以下为从标题、描述、标签和部分内容中提炼出的关于exo plateform的知识点: - exo plateform是一款企业级的内容管理平台,它支持包括知识管理和社区协作在内的多种企业应用。 - 提供的手册名为...
标题中的"exo.zip_exo"可能是指一个与"exo"相关的项目或软件的压缩包,而"exo"通常是一个韩国男子音乐团体的名字,这可能是个人项目或者与音乐、娱乐产业有关的软件应用。然而,考虑到标签同样是"exo",我们可以假设...
Exo-Glove 生物机器人手套是一款创新的医疗器械,它结合了生物医学与机械工程的先进技术,专注于帮助小儿麻痹症或肌肉无力患者恢复手部功能。这款手套采用了轻巧且柔性的仿生材料,使得穿戴者不会感到过大的负担。...
ijkplayer-java、ijkplayer-exo以及ijkplayer_example是ijkplayer在Java层的实现、与ExoPlayer集成的版本以及示例代码,分别对应了ijkplayer在不同场景下的应用。 1. **ijkplayer-java**: 这部分主要是ijkplayer在...
标题中的"exo"可能是指一个项目、软件或者代码库的名称,但没有足够的上下文来确定具体含义。不过,从标签"HTML"我们可以推测,这可能与网页开发有关,因为HTML(HyperText Markup Language)是构建网页的基础语言。...
【EXO简约文件夹图标】是一组设计简洁、风格独特的文件夹图标,旨在提升用户在计算机操作中的视觉体验。这些图标通常由专业设计师创作,融合了EXO这一流行音乐组合的元素,为普通文件夹赋予了个性化的外观,使得工作...
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...
Exo哈希图应用程序开发框架 Exo是用于在Swirlds Hashgraph平台上开发应用程序的框架。 首先,Exo提供了功能和应用程序体系结构,用于将事务放入Hashgraph,在接受之后处理这些事务,并将事务注销到持久性存储中。 ...
"exo-install"是一个与PHP相关的工具或框架,用于安装或...如果你是初学者,建议先熟悉PHP的基础知识,理解Web服务器和数据库的基本工作原理,然后再逐步学习如何利用"exo-install"这样的工具优化你的开发和部署流程。