9.14 米哈游前端笔试

一题没a。。。今天真的不怎么怎么回事了,笔试完心态崩了。

  1. 快乐值,给一个数组,随意摆放数组内元素位置,如果相邻元素的平均值是非整数,则快乐值+1 问怎么摆快乐值最大
    输入:[112,111,114,116] 输出:[112,111,114,116] 共有2快乐值 <112,111> <111,114>
    思路:统计奇数跟偶数,判断哪个比较少,把少的插入到大的直接,再返回总的数组。(还是不知道哪里错了,答案说可以输出任意答案的。 脑子坏了 要输出字符串带空格,愣是没看见)(代码已修正)

    var findFun = function (nums) { 
     // 统计偶数跟奇数
     let odd = [] // ji
     let even = [] // ou
     let res = []
     for(let i=0;i<nums.length;i++){
         if(nums[i]%2==0){
             // 偶数
             even.push(nums[i])
         }else{
             odd.push(nums[i])
         }
     }
     let minNum = odd.length<even.length?true:false // false是奇数个数多
     if(minNum){
         // 奇数少
         while(odd.length>0){
             res.push(even.shift())
             res.push(odd.shift())
         }
         res = res.concat(even)
     }else{
         while(even.length>0){
             res.push(odd.shift())
             res.push(even.shift())
         }
    
         res = res.concat(odd)
     }
     return res.join(" ")
    }
  2. 最长连续子串。给一个字符串,找出里面包含k个'mihoyo'字符串的最短字符串
    输入:"mihoyoyomihoyomimihoyo",2 输出:0 13或者8 22
    我的思路:暴力解直接开撕,结果只过了41%

    var subMihoyo = function (strs,k) { 
     let res = []
     // 处理这个子串
     function isMihoyo(substrs,knum){
         // 遍历
         let path = 0
         for(let i=0;i<substrs.length-5;i++){
             if(substrs[i]=='m'&&substrs[i+1]=='i'&&substrs[i+2]=='h'&&substrs[i+3]=='o'&&substrs[i+4]=='y'&&substrs[i+5]=='o'){
                 path+=1
                 i+=5
             }
         }
         if(path==knum){
             return true
         }
         return false
     }
     let i,j
     let n=0
     for(i=0;i<=strs.length-k*6;i++){
         j=k*6+i
         while(j<strs.length){
             // i应该什么时候移动?
             let substr = Array.from(strs).slice(i,j)
             if(isMihoyo(substr,k)){
                 res.push([i,j-1])
                 break
             }
             j++
         }
     }
     if(res.length>0){
         res.sort((a,b)=>(a[1]-a[0])-(b[1]-b[0]))
         return res[0].join(" ")
     }else{
         return -1
     }
    }
  3. 递增序列,给一个数组,让里面元素严格增加。每次操作可以让第i个元素*2(翻倍)。最少需要多少次操作
    输入:[1,2,2,2] 输出:3
    思路:照样暴力,从序号1的元素开始翻倍呗。 果然超时了 16%

    var uptoSum = function(nums){
     // nums = [2,3,2,3,2]
     // 从第一个往后
     let res = 0
     for(let i=1;i<nums.length;i++){
         let pre = 0 
         if(nums[i]>nums[i-1]){
             continue
         }else{
             // 当前数字小于前面的数
             let temp = nums[i-1]
             let path = 0
             while(nums[i]<=temp){
                 temp=temp/2
                 path++
             }
             nums[i] = nums[i]*(2**path)
             res+=path
         }
     }
     return res
    }

    到这里做完,心态小崩,有点不想去思考其他思路了 T^T

#米哈游##米哈游笔试##米哈游校招##米哈游23秋招笔试心得体会#
全部评论
第三题
2 回复 分享
发布于 2022-09-16 18:37 广东
第二题力扣原题,滑动窗口,会的很简单
1 回复 分享
发布于 2022-09-15 15:45 广西
第一题是不是输出格式不对,我就是的,找半天才发现
1 回复 分享
发布于 2022-09-14 22:30 江苏
前端mihoyo多选题感觉挺难
1 回复 分享
发布于 2022-09-14 22:28 浙江
恐怖😱
点赞 回复 分享
发布于 2022-11-17 11:20 上海
投的是平台吗
点赞 回复 分享
发布于 2022-09-17 09:12 上海
兄弟,*******从此秋招不迷路
点赞 回复 分享
发布于 2022-09-16 13:14 澳大利亚
第三题 应该是溢出出现问题,没溢出的话时间最多32*n 不可能超时,建议不要直接乘,用一个变量k维护前一个要乘2^k
点赞 回复 分享
发布于 2022-09-16 12:26 广东
咱俩第一题的答案写得一模一样
点赞 回复 分享
发布于 2022-09-15 18:38 上海
C了两道,估计没了
点赞 回复 分享
发布于 2022-09-15 17:01 上海
666
点赞 回复 分享
发布于 2022-09-15 16:18 广东
笔试完了还在讨论技术
点赞 回复 分享
发布于 2022-09-15 15:59 安徽
想问下第三题有uu知道有LeetCode原题吗
点赞 回复 分享
发布于 2022-09-15 10:59 内蒙古
第一题奇偶奇偶奇偶偶会存在问题,更优的解是偶奇偶奇偶奇偶,需要排除这个情况
点赞 回复 分享
发布于 2022-09-14 22:26 浙江
第二题用滑动窗口做
点赞 回复 分享
发布于 2022-09-14 22:21 浙江
推荐去看这个大佬的题解:https://www.nowcoder.com/discuss/1051274
点赞 回复 分享
发布于 2022-09-14 22:15 广东

相关推荐

从大一开始就开始学习Java,一路走来真的不算容易,每次面试都被压力,不过这次终于达成了自己的一大心愿!时间线和面经:8.17-投递9.1-一面实习+项目拷打看门狗机制讲一下redis加锁解锁的本身操作是什么Lua脚本是干什么的udp和tcp讲一下流量控制讲一下令牌桶算法说一下大端和小端是什么线程和协程有什么区别怎么切换协程切换的时候具体做了什么对于程序来说,你刚才提到的保存和恢复现场,这个现场有哪些信息udp优势现在有一个客户端和服务端,要实现TCP的通信,我们的代码要怎么写服务器怎么感知有新的连接怎么处理多个客户端的请求连接TCP怎么处理粘包和分包现在有两个文件,然后每个文件都有一亿条URL,每个的长度都很长,要怎么快速查找这两个文件共有的URLHashmap底层说一下怎么尽量提升插入和查询的效率如果要查找快,查询快,还有解决非空的问题,怎么做LoadingCache了解吗手撕:堆排序9.4-二面部门的leader,超级压力面拷打实习+项目,被喷完全没东西类的加载到垃圾回收整个底层原理讲一遍类加载谁来执行类加载器是什么东西,和进程的关系Java虚拟机是什么东西,和进程的关系如果我们要执行hello&nbsp;world,那虚拟机干了什么呢谁把字节码翻译成机器码,操作时机是什么Java虚拟机是一个执行单元吗Java虚拟机和操作系统的关系到底什么,假如我是个完全不懂技术的人,举例说明让我明白一个操作系统有两个Java程序的话,有几个虚拟机有没有单独的JVM进程存在启动一个hello&nbsp;world编译的时候,有几个进程JVM什么时候启动比如执行一条Java命令的时候对应一个进程,然后这个JVM虚拟机到底是不是在这个进程里面,还是说要先启动一个JVM虚拟机的进程垃圾回收机制的时机能手动触发垃圾回收吗垃圾回收会抢占业务代码的CPU吗垃圾回收算法简单说说垃圾回收机制的stop&nbsp;the&nbsp;world存在于哪些时机垃圾回收中的计算Region的时候怎么和业务代码并行执行假如只有一个线程,怎么实现并行Java为什么要这么实现Java效率比C++慢很多,那为什么还要这样实现Java虚拟机到底是什么形式存在的说一下Java和C++的区别还有你对Java设计理念的理解无手撕面试结束的时候,我真的汗流浃背了,面试官还和我道歉,说他是故意压力面想看看我的反应的,还对我给予了高度评价:我当面试官这么多年,你是我见过最好的一个9.9-三面临时通知的加面,就问了三十分钟项目9.11-hr面问过往经历,未来计划,想从腾讯实习中得到什么?当场告知leader十分满意我,所以直接ochr面完一分钟官网流程变成录用评估中,30分钟后mt加微信告知offer正在审批9.15-offer这一次腾讯面试体验真的不错,每个面试官能感觉到专业能力很强,反馈很足,比起隔壁某节真是好太多以后就是鹅孝子了
三本咋了:当面试官这么多年你是我见过的最好的一个
你面试被问到过哪些不会的...
点赞 评论 收藏
分享
评论
15
56
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务