第一次用的hashmap<integer,integer>没超时,15%
点赞 评论

相关推荐

03-30 10:58
已编辑
澳门科技大学 Web前端
笔试前基本搜不到什么题,也不知道复习什么,直接考。考完看了别人发的帖子,好像所有技术岗考的内容都一样。鼠鼠投的是前端(人事系统)的暑期实习。1.&nbsp;单选题内容包括C++,计网,操作系统(进程线程调度的问题),浏览器缓存(没考前端的内容,觉得确实是所有技术岗位统考)2.&nbsp;多选题内容包括C++,计网,操作系统,数据结构(C++是真的多,我是一点也不会,没学,直接凉了,操作系统的那些选择也好多不会)3.&nbsp;代码题(1)&nbsp;给一个数组,定义一个“区间”=&nbsp;[1,&nbsp;i],在这个“区间”的对应凸区间&nbsp;=&nbsp;[min{a1,...&nbsp;ai},&nbsp;max{a1,&nbsp;...&nbsp;ai}]&nbsp;中,找出不属于该凸区间的最小非负数。(理解题意就得看好一会,头次看想错了,重写花了点时间,我直接按求区间-&gt;遍历区间求凸区间-&gt;获得结果,这种暴力写法写,不出意外超时,觉得可以用动态规划写,但没想出来)&#39;&#39;&#39;jslet&nbsp;arr&nbsp;=&nbsp;[1,&nbsp;0,&nbsp;4,&nbsp;5,&nbsp;1]let&nbsp;result&nbsp;=&nbsp;[]let&nbsp;min&nbsp;=&nbsp;Number.MAX_VALUE,&nbsp;max&nbsp;=&nbsp;0for(let&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;arr.length;&nbsp;i++)&nbsp;{&nbsp;&nbsp;//&nbsp;维护最大值和最小值就好,别再去求区间,遍历&nbsp;&nbsp;min&nbsp;=&nbsp;Math.min(min,&nbsp;arr[i])&nbsp;&nbsp;max&nbsp;=&nbsp;Math.max(max,&nbsp;arr[i])&nbsp;&nbsp;if(min&nbsp;&gt;&nbsp;0)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;result.push(0)&nbsp;&nbsp;}else&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;result.push(max+1)&nbsp;&nbsp;}}console.log(result)&#39;&#39;&#39;(2)&nbsp;给一个二进制序列,如:&amp;amp;amp;quot;001100&amp;amp;amp;quot;,然后把11往后移1位,...,最后形成一个方阵,如:001100000110000011100001110000011000求这个方阵中,由0组成的最大矩形或三角形的面积(没思路直接过)&#39;&#39;&#39;jslet&nbsp;s&nbsp;=&nbsp;&#39;001110&#39;/**&nbsp;*&nbsp;别傻傻去生成矩阵,直接求连续的0,再从1累加得到面积,如果全0则直接求正方形面积&nbsp;*&nbsp;&nbsp;*&nbsp;001110&nbsp;*&nbsp;000111&nbsp;*&nbsp;100011&nbsp;*&nbsp;110001&nbsp;*&nbsp;111000&nbsp;*&nbsp;011100&nbsp;*/let&nbsp;isSquare&nbsp;=&nbsp;truefor(const&nbsp;i&nbsp;of&nbsp;s)&nbsp;{&nbsp;&nbsp;if(i&nbsp;!==&nbsp;&#39;0&#39;)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;isSquare&nbsp;=&nbsp;false&nbsp;&nbsp;&nbsp;&nbsp;break&nbsp;&nbsp;}}if(isSquare)&nbsp;{&nbsp;&nbsp;console.log(s.length&nbsp;*&nbsp;s.length)}let&nbsp;zeroNum&nbsp;=&nbsp;s[0]&nbsp;===&nbsp;&#39;0&#39;&nbsp;?&nbsp;1&nbsp;:&nbsp;0let&nbsp;max&nbsp;=&nbsp;0let&nbsp;ss&nbsp;=&nbsp;s&nbsp;+&nbsp;sfor(let&nbsp;i&nbsp;=&nbsp;1;&nbsp;i&nbsp;&lt;&nbsp;ss.length;&nbsp;i++)&nbsp;{&nbsp;&nbsp;if(ss[i]&nbsp;===&nbsp;&#39;0&#39;&nbsp;&amp;amp;&amp;amp;&nbsp;ss[i&nbsp;-&nbsp;1]&nbsp;===&nbsp;&#39;1&#39;)&nbsp;zeroNum&nbsp;=&nbsp;1&nbsp;&nbsp;if(ss[i]&nbsp;===&nbsp;&#39;0&#39;&nbsp;&amp;amp;&amp;amp;&nbsp;ss[i&nbsp;-&nbsp;1]&nbsp;===&nbsp;&#39;0&#39;)&nbsp;zeroNum++&nbsp;&nbsp;max&nbsp;=&nbsp;Math.max(max,&nbsp;zeroNum)}console.log((1&nbsp;+&nbsp;max)&nbsp;*&nbsp;max&nbsp;/&nbsp;2)&#39;&#39;&#39;(3)&nbsp;给一个数组,一个查询次数n,和n个输入的目标值,求这个数组中任意2个不同的数,他们的乘积等于对应的目标值,输出是n对下标(找不到[-1,-1])。(也是直接暴力解法,过了20%,可以再进行剪枝,但还是没过)考完才发现可以用两数之和哈希表的操作&#39;&#39;&#39;jslet&nbsp;arr&nbsp;=&nbsp;[2,3,6,7,3,7,4]let&nbsp;target&nbsp;=&nbsp;6let&nbsp;map&nbsp;=&nbsp;new&nbsp;Map()let&nbsp;result&nbsp;=&nbsp;[]for&nbsp;(let&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;arr.length;&nbsp;i++)&nbsp;{&nbsp;&nbsp;if(arr[i]&nbsp;&gt;&nbsp;target)&nbsp;continue&nbsp;&nbsp;if&nbsp;(map.has(target&nbsp;/&nbsp;arr[i]))&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;result&nbsp;=&nbsp;[i,&nbsp;map.get(target&nbsp;/&nbsp;arr[i])]&nbsp;&nbsp;}&nbsp;&nbsp;map.set(arr[i],&nbsp;i)}console.log(result)&#39;&#39;&#39;总结:太难了,又是一轮游,下去再沉淀沉淀。之前看过米哈游秋招的笔试,好像是21年还是22年的,手写题都没这么难,都a出来的,现在tm是越来越难,也可能是一紧张脑子乱了(好了不说了,主要原因是自己菜)再做了一遍,确实觉得没有考试那时感觉难,最后一题在想去重+根号n,去重的话,索引不会发生变化吗。(看看有无佬过了这一道)#笔试##米哈游##暑期实习##前端##前端实习#
查看5道真题和解析 投递米哈游等公司6个岗位 笔试
点赞 评论 收藏
分享
牛客网
牛客企业服务