当前位置: 首页 > 面试经验 >

8/9 华为od 机试 js 已凉

优质
小牛编辑
155浏览
2023-03-28

8/9 华为od 机试 js 已凉

本人22届本科,自学前端,非计算机专业,正在找工作,欢迎介绍,感谢介绍!
正文:
第一题:字符串换最小字符串

(5条消息) HUAWEI 机试题:字符串变换最小字符串_leo_qiu_s的博客-CSDN博客_字符串变换最小字符串

该题个人代码如下

通过率只有23%,欢迎大佬解答

let str = readline()
let arr = str
str = str.split('')
arr = arr.split('').sort()
for(let i =0;i<str.length;i++){
if(str[i] != arr[i]){
let temp = str[i]
let j = str.indexOf(arr[i])
str[i] = str[j]
str[j] = temp
break
}
}
console.log(str.join(''))

第二题:(5条消息) 华为机试练习(十一)求数组中最大n个数和最小n个数的和_下一个路口遇见你48的博客-CSDN博客_最大n个数与最小n个数的和

该题通过率为 94.5%

第三题:求最少需要的面试官数量

题目求助 | 求最少需要的面试官数量 - 力扣(LeetCode)

这个题目,没有debug出来,钻牛角尖了

洗了个澡后,做出来了,欢迎大佬指点

/* 某公司组织一场公开招聘活动,假设由于人数和场地的限制,每人每次面试的时长不等,并已经安排给定,用(S1,E1)、(S2,E2)、(Sj,Ej)...(Si < Ei,均为非负整数)表示每场面试的开始和结束时间。面试采用一对一的方式,即一名面试官同时只能面试一名应试者,一名面试官完成一次面试后可以立即进行下一场面试,且每个面试官的面试人次不超过m。
为了支撑招聘活动高效顺利进行,请你计算至少需要多少名面试官。
输入描述:
输入的第一行为面试官的最多面试人次m,第二行为当天总的面试场次n,接下来的n行为每场面试的起始时间和结束时间,起始时间和结束时间用空格分隔。
其中,1 <= n, m <= 500
输出一个整数,表示至少需要的面试官数量。
示例1:
2
4
1 2
3 5
4 7
6 8
输出:2
*/
// ----------------------------------------------------
let m = 2
let n = 4
let arr = [[1,2],[3,5],[4,7],[6,8]]
//整理排序 ,排序后,一个面试官一场面试,依次轮流发放
arr.sort((a,b)=>{
if(a[0]==b[0]){
return a[1]-b[1]
}else{
return a[0]-b[0]
}
})
//最少面试官数量
let mianshiguan = Math.ceil(n/m)

// 具体面试官的最后一场面试时间

let msgs = new Array(n).fill([0,0])

// .fill() 方法填充的是数据地址,重新深拷贝一次,大坑!!
let msg =JSON.parse(JSON.stringify(msgs))

let result = mianshiguan
let f = 0 // 安排成功的标志
// 面试官最多为n
for(let k = mianshiguan;k<=n;k++){
f = 0
for(let i =0;i<arr.length;i++){

if( msg[i%k][1]<arr[i][0]){
msg[i%k][0]= arr[i][0]
msg[i%k][1] =arr[i][1]
}else{
// 当排序后,安排给面试官的场次,面试官时间无法接受,后面的面试官时间肯定也接受不了,因此添加一个面试官 即 k++
f= 1
msg.forEach(a=>{
return [a[0],a[1]] = [0,0]
})
break
}

}
if(f==0){
result = k
}
}
console.log(result)
#华为od机试##华为机试,emo了#
 类似资料: