cvte2018春招前端开发实习面试分享
编程题问题描述:
返回整数数组中出现次数第n多的数字(返回值可能有多个)
最近在找实习,面试二面最后出了一道这样的编程题,当时有思路但语法有错误,而且很紧张,最后没有运行出来,导致凉凉,回来重新思考了一下这个问题,按照当时面试的思路继续完善了一下,实现方法如下:
//思想是,1.先利用对象得到每个数字出现的次数,数字为对象中的键,出现的次数为对象中的值;2.将对象中的值保存为一个新的数组(去重),对新的数组进行从大到小的排序,第n多即为新数组中的第n-1个元素;3.遍历对象,输出值为 新数组中的第n-1个元素 的键
function cvte(n,arr){
//1.用对象的方法可以返回数组中出现次数为n的数字,但不是出现次数第n多的数字
var obj={};
for(var i=0;i<arr.length;i++){
if(arr[i] in obj){ //用到了 in 关键字
obj[arr[i]] += 1;
}else{
obj[arr[i]] = 1;
}
}
console.log(obj); //2.将对象中的值保存为一个新的数组(去重)
var newarr=[];
var j=0;
for(var k in obj){
if(newarr.indexOf(obj[k])==-1){
newarr[j++]=obj[k];
}
} //2.对新数组进行冒泡排序,上一篇博客有提到十种排序算法,这里任选一种
for(var i=0;i<newarr.length-1;i++){
var flag = true;
for(var j=0;j<newarr.length-i-1;j++){
if(newarr[j]<newarr[j+1]){
var temp = newarr[j];
newarr[j] = newarr[j+1];
newarr[j+1] = temp;
flag = false;
}
}
if(flag){
break;
}
}
//或使用sort方法,b-a是从大到小排列,a-b是从小到大排列
// newarr.sort(function(a,b){
// return b-a;
// })
console.log(newarr); //3.输出值为 新数组中的第n-1个元素 的键
var count = newarr[n-1];
var result='';
for(var k in obj){ //用到了 in 关键字
if(obj[k]==count){
result += (k + ' ');
}
}
console.log(result);
} cvte(2,[2,5,8,6,2,3,5,5,9,5]);
我自己总结了一下,写这个题的过程中我错误的点:
1.首先是面试时候我写错了的语法。(其实这个语法是以前看过的,但是没记牢固,每次要用的时候都是去翻语法,本身记笔记没什么不好,但是在面试的时候,特别是手写代码还不让调试,是很考验基本功和基础语法的,所以能记还是尽量记住,这样还能提高写代码的效率,还有就是要多用,多实践)
这是实现对象继承时最简单的遍历对象继承,里面用到的 in 关键字
1. 最常用的是在for in 循环中 遍历对象的键
2. 判断属性是否存在于对象中
语法 属性名 in 对象 //返回布尔值true or false
//例子
var animal = {
name:"Animal",
sex:"male",
age:5,
bark:function(){
console.log("Animal bark");
}
}; var dog = {}; for (var k in animal){
//k可以获取到对象的每一个属性
//animal [k]可以获取到对象的每一个属性的值
//这里使用k给对象新增属性的时候,不可以使用点语法,因为k是一个字符串
dog[k]= animal[k]; }
2.排序算法,不应该仅仅满足于知道就好,还有动手敲,思考异同,在需要使用时能够信手拈来。
3.以后写类似算法编程题的时候,特别是面试的时候,先把思路整理清楚,在注释中分一二三步写清楚,这样后面在代码实现的过程中思路不会混乱,不会写叉。以后自己再回顾的时候也会一目了然,同时工作之后也方便同事交流,工作交接。
cvte2018春招前端开发实习面试分享的更多相关文章
- 【字节校招】【实习】【内推】字节跳动春招(校招或实习均可)以及日常实习内推ing
本人是年前刚刚入职抖音的应届生,职业认证还未来的级更改,但是这些都不重要.重要的是我们不能错过优秀的你~ 字节跳动的相关福利我就不介绍了,技术实习生是400/天,房补是1500/月,三餐免费,下午茶, ...
- Web前端开发笔试&面试_01(mi:)
—— (al_me16041719002000) begin—— 1.(单选)下面哪个方法是String对象和Array对象都有的? A.splice B.split C.replace D.conc ...
- 科蓝软件急招前端开发、PHP、.NET工程师
职位:前端开发 工作年限:不限 学历要求:大专 招聘人数:2 专业:不限 薪酬:面议 工作地点:浙江嘉兴.北京 岗位职责: 1.负责公司项目的UI设计: 2.负责将UI静态化 ...
- 【我的面试-01】Web前端开发实习岗-面试题总结
简单开头 首先技术面试官会根据简历里所写的项目和个人掌握技术栈提问(我不知道已经改过多少次简历了,因为前期投简历是真的是沉在茫茫大海,捞漂流瓶都捞不到的那种) 我的技术栈:(Vue还在苦苦的自学当中, ...
- 淘宝web前端开发岗面试经历及感悟
今天下午四点接到淘宝UED的面试电话,很突然,很激动.现在怀着淡淡的忧伤为之文以志一下. 1.自我介绍一下. 我xx时候毕业,在xx公司任xx职务,主要负责xx balabala.(怕公司同事听到,接 ...
- 亲历腾讯WEB前端开发三轮面试经历及面试题
[一面]~=110分钟 2014/09/24 11:20 星期三 进门静坐30分钟做题. 填空题+大题+问答题 >>填空题何时接触电脑 何时接触前端运算符 字符串处理 延 ...
- 腾讯WEB前端开发三轮面试经历及面试题
[一面]~=110分钟 2013/04/24 11:20 星期三 进门静坐30分钟做题. 填空题+大题+问答题 >>填空题何时接触电脑 何时接触前端运算符 字符串处理 延 ...
- Web前端开发笔试&面试_02(others)
AL>> 1.CSS 3 如何实现旋转图片? 答:transform : rotate 2.写CSS 的工具? 答:LESS.SASS 3.JavaScript 倒计时? 答:setTim ...
- Web前端开发笔试&面试_04_20161019MTBS
1.运用CSS3 ,实现div 沿Y 轴上下循环运动的动画. 我写是:-webkit-animation:xz 3s linear 1s infinite //即XZ轴变化,Y轴不变 正确答案是: & ...
随机推荐
- ACL 实验
一.环境准备 1. 软件:GNS3 2. 路由:c7200 二.实验操作 实验要求: 1. 掌握标准 ACL.扩展 ACL 的配置方法. 2. 掌握命名 ACL 的配置方法. 3. 掌握访问控制列表配 ...
- Variational Auto-encoder(VAE)变分自编码器-Pytorch
import os import torch import torch.nn as nn import torch.nn.functional as F import torchvision from ...
- 多生产者多消费者(第一种方式),基于synchronized,wait,notifyAll
生产者消费者模式描述的是协调与协作关系.比如一个人正在准备食物(生产者),而另一个人正在吃(消费者),他们使用一个共用 的桌子用于放置盘子和取走盘子,生产者准备食物,如果桌子上已经满了就等待,消费者( ...
- 【转帖】2019年中国5G行业细分市场发展现状和市场前景分析 通信基站数量快速增长
2019年中国5G行业细分市场发展现状和市场前景分析 通信基站数量快速增长 中国有 600多万个基站 平均每200个人 一个基站.. 一个基站十万块钱的话 相当于 每个人 需要分摊 500块钱. ht ...
- Java UpperBound
Java UpperBound /** * <html> * <body> * <P> Copyright 1994-2018 JasonInternational ...
- SringMVC笔记
SpringMvc主要是三个Servlet:HttpServletBean,FramwworkServlet,DispatcherServlet,它们是依次继承的关系,其处理过程大致功能如下: 1.H ...
- Vuex 刷新后数据丢失问题 Typescript
问题描述:Vuex保存的数据在页面刷新后会全部丢失清除 问题解决方案:使用sessionstorage进行保存,在页面刷新时保存至sessionStorage,页面在加载时再进行填充 (另有vue ...
- SVM支持向量机实例
波士顿房价回归分析 1.导入波士顿房价数据集 ############################# svm实例--波士顿房价回归分析 ############################## ...
- LunHui 的生命观
LunHui 的生命观 来源 https://www.zhihu.com/question/346510295 作者:齐天大圣链接:https://www.zhihu.com/question/346 ...
- Java Web-Ajax学习
Java Web-Ajax学习 概念 Ajax(Asynchronous JavaScript And XML,异步的JavaScript和XML). 异步和同步:在客户端和服务器端相互通信的基础上来 ...