網(wǎng)易游戲的面試題與參考答案記錄

1 介紹課題
2 介紹進(jìn)程跟線程,進(jìn)程之間的通信
進(jìn)程和線程的主要差別在于它們是不同的操作系統(tǒng)資源管理方式。
1)進(jìn)程有獨(dú)立的地址空間,一個(gè)進(jìn)程崩潰后,在保護(hù)模式下不會(huì)對其它進(jìn)程產(chǎn)生影響;
2)而線程只是一個(gè)進(jìn)程中的不同執(zhí)行路徑。線程有自己的堆棧和局部變量,但線程之間沒有單獨(dú)的地址空間,一個(gè)線程死掉就等于整個(gè)進(jìn)程死掉
3)多進(jìn)程的程序要比多線程的程序健壯;
4)但在進(jìn)程切換時(shí),耗費(fèi)資源較大,效率要差一些。
5)對于一些要求同時(shí)進(jìn)行并且又要共享某些變量的并發(fā)操作,只能用線程,不能用進(jìn)程。
進(jìn)程之間的通信方式:
1)管道:進(jìn)程與具有相同祖先進(jìn)程的兩個(gè)進(jìn)程之間通信
2)命名管道:任意兩個(gè)進(jìn)程之間的通信,
3)消息隊(duì)列:
4)內(nèi)存映射:
5)套接字:
6)
3 http (get head post)udp tcp
4 數(shù)據(jù)庫的連接方式,分別是怎么連接的?
5 課題遇到的問題,怎么解決的?
6 常用的python包有哪些?
1)GUI 圖形界面: Tkinter,turtle
2)科學(xué)計(jì)算 :numpy;SciPy;pandas;randmon;sklearn
3)爬蟲相關(guān):scrapy;pyspider;selenium;requests;pysql
4)圖像處理:pillow;matplotlib;skimage;CV2
5)其他:os模塊就是對操作系統(tǒng)進(jìn)行操作;time;加密hashlib;logging模塊控制臺輸出日志;
6)接口測試相關(guān):sys,urllib,json,base64,
7)字典:collections,operator
7 給定一串?dāng)?shù)組,判斷數(shù)組中是否存在兩個(gè)數(shù)之和等于給定的數(shù)
這個(gè)題其實(shí)很簡單,面試的時(shí)候腦子里就想著,應(yīng)該有什么比較好的方法,就把最基礎(chǔ)的思路都沒有說出來,唉傻到爆炸
思路:
遍歷每兩個(gè)數(shù)字,檢查之和是否等于給定的Key,如果相等的話,返回True;否則返回False
注意:
不能寫成
def issumin(array,key): for i in range(len(array)-1): for j in range(i+1,len(array)): if array[i]+array[j] == key: return True else: return False
因?yàn)檫@樣的話,程序只會(huì)把第一個(gè)值和第二值相加,判斷相等就True,不相等就False;不進(jìn)行后面的判斷
所以我們應(yīng)該改成:當(dāng)它兩不相等的時(shí)候,退出當(dāng)前循環(huán),進(jìn)入下一輪循環(huán),當(dāng)循環(huán)結(jié)束還有沒相等,我們就在循環(huán)結(jié)束之后加一個(gè)return False;如果相等,直接返回True
def issumin(array,key): for i in range(len(array)-1): for j in range(i+1,len(array)): if array[i]+array[j] != key: continue else: return True return False array = [-1,3,2,7,0,-4,6] key = 8 print(issumin(array,key))
改進(jìn)版
def find_numbers_with_sum(array,sum): array.sort() #res =[] add = 0 start = 0 end = len(array)-1 while(start<end): add = array[start]+array[end] if add>sum: end -=1 elif add<sum: start +=1 else: #res.extend([array[start],array[end]]) #return res return array[start],array[end] return [] print(find_numbers_with_sum([-1,3,2,7,0,-4,6],8))
算法復(fù)雜度是:O(n)
class Solution(object): def twoSum(self, nums, target): dic = {} for i, n in enumerate(nums): if n in dic: return [dic[n], i] dic[target-n] = i
8 輸入一個(gè)整數(shù)列表,將連續(xù)的整數(shù)作為一組,只記錄首尾,如[1,2,3,4,5,6]是一組,記錄其首尾為[1,6],返回所有首尾的列表,沒有返回空列表
思路:
首先進(jìn)行排序,然后判斷后一個(gè)減前一個(gè)等于1 ,繼續(xù)往后走;否則,說明,連續(xù)的序列已經(jīng)結(jié)束,將當(dāng)前元素添加到列表中
這樣的話,需要對最后一個(gè)進(jìn)行特判,如果最后一個(gè)不連續(xù),我們將它直接加到res中;如果連續(xù)先加到s中,再將s加到res中
注意:
1)這里需要設(shè)置一個(gè)start的flag,如果連續(xù)的子序列開始,需要將start置為非空;如果連續(xù)的子序列結(jié)束,需要將start置為空
2)只有子序列開始,和子序列結(jié)束時(shí),才append;連續(xù)的中間元素沒有必要append
def subset(array): res = [] start = None array.sort() for i in range(len(array)-1): if start == None: s = [] s.append(array[i]) start = 1 elif array[i]-array[i+1] != -1: s.append(array[i]) start = None res.append(s) if start == None: res.append(array[len(array)-1]) else: s.append(array[len(array)-1]) res.append(s) return res if __name__ == '__main__': a = [3,2,7,8,1,4,10,11,12,15] print(subset(a))
運(yùn)行結(jié)果: runfile('C:/Users/Desktop/python/constant.py', wdir='C:/Users/Desktop/python') [[1, 4], [7, 8], [10, 12], 15]
9 邏輯題:在公路上觀察一小時(shí),有車經(jīng)過的概率為96%,觀察半小時(shí),有車經(jīng)過的概率為多少
10 給你一只鉛筆,盡可能多的想出跟它相關(guān)的東西
11 平常玩什么游戲?
12 字符串轉(zhuǎn)化成整數(shù)?
題目面試的時(shí)候都沒怎么明白,只能說還需要成長
思路:
1)先判斷字符串是不是以正負(fù)號打頭的,如果是的話,分情況討論;先獲取字符串的符號,計(jì)算完成之后,按照正負(fù)號直接乘上去就行
2)如果字符串不是以正負(fù)號打頭的,按每一位進(jìn)行判斷就是
注意:
1) 這里的ord('0')一定是要加引號的,而不是ord(0)
2) 需要將字符串進(jìn)行反轉(zhuǎn),從最小的位置開始,每一位乘10,然后相加
def str2int(string): if string[0] == '+' or string[0] =='-': string1 = string[1:] res = 0 mul = 1 for i in reversed(string1): if ord('9') >= ord(i) >= ord('0'): res = res + mul*(ord(i)-ord('0')) mul *= 10 else: return False if string[0] == '+': return res else: return -1*res else: res = 0 mul = 1 for i in reversed(string): if ord('9') >= ord(i) >= ord('0'): res = res + mul*(ord(i)-ord('0')) mul *= 10 else: return False return res print(str2int('-12309'))
運(yùn)行結(jié)果: runfile('C:/Users/Desktop/python/str2int.py', wdir='C:/Users/Desktop/python') -12309
相關(guān)文章
網(wǎng)易2018校園招聘面試編程題真題與參考答案集合
這篇文章主要介紹了網(wǎng)易2018校園招聘面試編程題真題與參考答案,整理了2018校園招聘面試編程題及相應(yīng)的解題思路、參考答案,涉及各種常用數(shù)據(jù)結(jié)構(gòu)與算法使用技巧,需要的朋友2019-09-19網(wǎng)易2019實(shí)習(xí)生招聘面試編程題與參考答案集合
這篇文章主要介紹了網(wǎng)易2019實(shí)習(xí)生招聘面試編程題與參考答案,結(jié)合具體實(shí)例形式分析了網(wǎng)易招聘面試中的編程題目,涉及字符串處理、數(shù)值運(yùn)算及常用的算法操作技巧,需要的朋友2019-09-18阿里、網(wǎng)易、滴滴共十次前端面試碰到的問題小結(jié)
這篇文章主要介紹了阿里、網(wǎng)易、滴滴共十次前端面試碰到的問題小結(jié),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-25兩個(gè)月面試經(jīng)歷回顧:阿里,攜程,小紅書,美團(tuán),網(wǎng)易等等
這篇文章主要介紹了兩個(gè)月面試經(jīng)歷回顧:阿里,攜程,小紅書,美團(tuán),網(wǎng)易等等,分享給大家經(jīng)驗(yàn),有興趣的可以了解一下2019-06-25- 這篇文章主要介紹了騰訊游戲客戶端開發(fā)面試經(jīng)歷,總結(jié)分享了騰訊游戲客戶端開發(fā)面試所涉及到的考點(diǎn)與注意事項(xiàng),需要的朋友可以參考下2019-09-20
華為Java社招面試經(jīng)歷詳解【已拿到offer】
這篇文章主要介紹了華為Java社招面試經(jīng)歷,詳細(xì)記錄了華為java面試的流程、相關(guān)面試題與參考答案,需要的朋友可以參考下2019-09-17- 這是一道真真實(shí)實(shí)的阿里面試題:“請解釋下為什么鹿晗發(fā)布戀情的時(shí)候, 微博系統(tǒng)會(huì)崩潰,如何解決2019-09-16
- 這篇文章主要介紹了新浪面試php筆試題與參考答案,結(jié)合具體實(shí)例形式分析了php面試中正則、函數(shù)、目錄、文件等知識點(diǎn)及操作技巧,需要的朋友可以參考下2019-09-12
- 這篇文章主要介紹了華為筆試算法面試題與參考答案,結(jié)合實(shí)例形式分析了基于C++的字符串轉(zhuǎn)換、判斷、排序等算法相關(guān)操作技巧,需要的朋友可以參考下2019-09-05
- 這篇文章主要介紹了阿里常用Java并發(fā)編程面試試題,總結(jié)分析了java并發(fā)編程的概念、原理、常見操作與相關(guān)注意事項(xiàng),需要的朋友可以參考下2019-09-04