阿里前端内推一面-电话面试,在线编程

2018年08月17日 星期五 下午两点整 电话面试 40 分钟
刚刚经历人生第一个招聘面试,还是阿里
紧张到发抖
因为是学长内推,小姐姐给面子人很好
给了两道算法题都写过,上手直接写,很快就写完了
第一道题凭记忆写的,也不知道写对了没有。写完还继续问我还有没有更好的方法。
编程是给我邮箱里发了一个链接,我点进去链接在线编
然后是对着我的简历问了项目的事情
让我描述一下项目功能,我主要描述了写的资源管理网站
问我们进销存系统里面还用到Tomcat吗
问我基础知识几乎都没有回答上来了
问我测试算法题里Promise那道题会写了吗
问我Java中List<String>和数组String有什么区别,问我两者插入数据时的区别
问我会不会数据库ibatise
问我是不是用过ajax,一般都发什么请求,比如get、post,然后问我ajax跨域请求会不会
问我数据库怎么添加索引,为什么要添加索引
问我会不会jQuery
问我bootstrap和jQuery的区别
问我ACM大赛是什么题,有组队吗


第一道题目
//评测题目: 给定一个数组,向右侧旋转这个数组k次,k是非负数。

Example 1:

Input: [1,2,3,4,5,6,7] and k = 3
Output: [5,6,7,1,2,3,4]
Explanation:
rotate 1 steps to the right: [7,1,2,3,4,5,6]
rotate 2 steps to the right: [6,7,1,2,3,4,5]
rotate 3 steps to the right: [5,6,7,1,2,3,4]

Example 2:

Input: [-1,-100,3,99] and k = 2
Output: [3,99,-1,-100]
Explanation:
rotate 1 steps to the right: [99,-1,-100,3]
rotate 2 steps to the right: [3,99,-1,-100]


/**
* @param {number[]} nums
* @param {number} k
* @return
{void} Do not return anything, modify nums in-place instead.
*/
var rotate = function(nums, k) {
if(nums.length == 0) return ;
var kk = k % nums.length;
var p = nums.length - kk - 1;
re(nums,0,p);
re(nums,p,nums.length);
nums.reverse();

};
function re(num, start, end){
var i = start;
var j = end - 1;
while(i < j){
var t = num[i];
num[i] = num[j];
num[j] = t;
}
}


我写的答案:
思路是数组分两半,左边倒序,右边倒序,总的倒序。
问我还有没有其他更加好的思路?
var rotate = function(nums, k) {
if(nums.length == 0) return ;
var kk = k % nums.length;
var p = nums.length - kk - 1;
re(nums,0,p);
re(nums,p,nums.length);
nums.reverse();

};
function re(num, start, end){
var i = start;
var j = end - 1;
while(i < j){
var t = num[i];
num[i] = num[j];
num[j] = t;
}
}


#内推##阿里巴巴##前端工程师##面经##提前批#
全部评论
请问你是什么时间投递的简历呢?感觉我都来不及面试了
点赞 回复 分享
发布于 2018-08-17 16:06
说不定她意思是叫你用队列来解
点赞 回复 分享
发布于 2019-09-02 10:59
function re(arr,key){     for(var i=0;i<key;i++){        arr.unshift(arr.pop())     }     return arr; }
点赞 回复 分享
发布于 2019-09-03 22:36
直接这样? function change(array,k){     array.unshift(...array.splice(-k));     return array; }
点赞 回复 分享
发布于 2020-04-02 14:48
var rotate = function(nums, k) {             return nums.splice(nums.length - k, k).concat(nums)             };
点赞 回复 分享
发布于 2022-03-25 14:27

相关推荐

评论
2
50
分享
牛客网
牛客企业服务