一、投遞信息
- 投遞時間:2020年3月21日
- 崗位:web前端開發工程師—暑期實習
- 工作地點:成都
- 信息來源:校招優選微信公眾號
- 回復時間:2020年3月26日
- 筆試時間:2020年3月28日
- 筆試平台:牛客網
二、筆試題型
- 單選題
- 多選題
- 2道編程題
三、回憶起來的題或考點
-
行內樣式的優先級
-
<p class="a b">hello html</p>
-
p{color: blue;}.a{color: red;}.b{color: yellow;}文本顯示的顏色?
-
-
二叉樹的中序遍歷(太久沒看題,把先序和中序搞混了,我對不起數據結構的老師)
-
TCP擁塞控制(我看了,但是忘了,心痛!)
-
數組、鏈表、樹、哈希表(最高性能)
- switc語法問題(這應該是送分的) ICMPv6(看過,但沒記住)
- 行內、塊級元素(比較簡單)
- 不屬於數組的方法 splice()、join()、reverse()、sort()
- 我尋思這都能用呀。想不明白,有大神看到能指點我一下嗎
- 堆、棧、進程、線程
- 正則表達式(這個單選多選都出了)
- let
編程題
1.小明有n元錢去買口罩,共有6個品牌,A品牌2個裝(2元),B品牌3個裝(2元),C品牌1個裝(3元),D品牌5個裝(1元),E品牌3個裝(5元),F品牌3個裝(2元),每個牌子只能買一次,請問n元小明最多能買多少個?
當時的想法:這道題很像背包問題,重量=錢;價值=口罩數量。可是我理解的還不是很透徹,使用for循環,一步步遍歷下去,只有60%通過,而且浪費了特別多的時間。
背包問題:https://segmentfault.com/a/1190000012829866
這里提供學習鏈接,大家一塊鑽研,如果我后面寫出來成功的,會貼過來。
2.三角形的每條邊上有4個圓,在每個圓內寫出1-9,使每條邊的和相等。按以下的順序。
當時的想法:做完第一題就只剩下10來分鍾,連思路都沒,只能硬着頭皮敲。但是后面沒輸出好像也還是0%
解題思路:
-
- 首先判斷輸入的內容是否違法,(必須是1-9,且不能重復)
- 1-9的總和為45,設每一邊的和為x,三個頂點為a,b,c;3x=45+a+b+c(一個頂點兩條邊,所以是重復計算的);由此可得a+b+c為三的倍數; 例:三個角分別為1 4 7 || 2 5 8 || 3 6 9
- 1 4邊有5 9
- 1 7邊有3 8
- 4 7 邊有2 6
let a = [1,5,9,4,2,6,7,3,8]; var nums = [1,2,3,4,5,6,7,8,9]; function permute(nums,a){ var result =[]; let b = JSON.parse(JSON.stringify(a)) ;//防止原數組污染 b.sort((v1,v2)=>v1-v2);//排序 //進行1對1的判斷輸入是否合法 for(let i=0;i<b.length;i++){ if(b[i]!==nums[i]){ console.log("非法"); return false; break; } } //三個頂點是否能被三整除 if((a[0]+a[3]+a[6])%3==0){ for(i=0;i<a.length;){ let p = a[i]+a[i+1]+a[i+2]+(a[i+3]?a[i+3]:a[0]) result.push(p); i += 3; }//獲得三條邊的長 if(result[0]==result[1]&&result[0]==result[2]){ return true; }else{ return false; } } } console.log(permute(nums,a));
四、總結
1、選擇題很多一知半解,能排除一兩個選項,然后靠運氣
2、選擇題問的比較多的是基礎知識,計算機網絡、數據結構、JavaScript、CSS,是自己知識點不夠牢固,題做得也不夠。接下來就是每天在基礎上花時間,將還給老師的補回來。
3、這兩道編程題其實算簡單,但是我通過率第一道只有60%,第二道0%其實不應該,第一次用牛客網筆試不熟悉是一方面,還有自己不會把控時間,慌了神。
4、接下來就是圍繞這兩方面,進行鞏固基礎和刷題進行。給定自己最低目標每天刷一道題。我會把每次筆試或者面試進行總結,慢慢進步吧!!!