原创 操作系統面試—死鎖(二)——銀行家算法

本文是對操作系統概念(第七版)第七章——死鎖的學習總結,不足之處歡迎批評指正。 上文中我們提到了資源分配圖算法,只適合每種資源只有一個實例的情況。當每種資源不止一個實例時,資源分配圖算法將不再適合,因此需要用到我們這一章要講的銀行家算法。

原创 找到給定數組中出現次數大於長度一半的數字,若沒有,則返回0

題目:找到給定數組中出現次數大於長度一半的數字,若沒有,則返回0。 思路: 第一種方法:直接利用map<int,int>其中第一個元素存放數組中出現的元素種類,第二個元素存放相對應元素出現的次數。 最後進行檢查,判斷是否有次數大於數組長度

原创 操作系統面試—cpu調度

cpu調度是多道程序設計的基礎。本文是對操作系統概念(第七版)第五章——cpu調度的學習總結,不足之處歡迎各位博友提出,共同進步。 本文內容: 1、介紹cpu調度常見概念。 2、介紹cpu調度算法以及特點。 (1)cpu調度決策發生的情

原创 操作系統面試—死鎖(三)——死鎖檢測和死鎖恢復

本文是對操作系統概念(第七版)——死鎖的學習總結,不足之處,歡迎批評指正。 本文討論的兩塊內容是死鎖檢測和死鎖恢復。 1、死鎖檢測 首先針對每種資源類型只有一個實例的情況。 該算法使用資源分配圖的一個變種,稱爲等待圖。從資源分配圖中,刪除

原创 操作系統面試—進程同步(二)

本博文是對上一篇博文的繼續,不足之處歡迎大家批評指正。 一、首先介紹常見的經典同步問題 1、有限緩衝問題 假定有n個緩衝項,信號量mutex提供對緩衝池訪問的互斥要求,並初始化爲1。信號量empty和full代表空緩衝項和滿緩衝項的個

原创 STL序列式容器之堆棧——stack

stack其實是一個配接器(adapter),因爲SGI的STL缺省情況下是以deque作爲底層結構的,即修改某物接口,形成另一種數據結構。 到目前爲止,我們總結一下學過的容器的壓入和彈出操作。 vector:只能在尾端操作,push_b

原创 程序員面試(c++)——預處理,const與sizeof總結

本文是對《程序員面試寶典》的學習總結,不足之處望多多批評指正。 每次看《程序員面試寶典》都有收穫,但是不總結,有些東西無法真正掌握,這裏對預處理、const和sizeof進行總結,希望能幫到更多人。大神親噴。 預處理、const和size

原创 操作系統面試—死鎖

本文是對操作系統概念(第七版)第七章——死鎖的學習總結,不足之處,歡迎各位批評指出。 1、死鎖的必要條件(重要) 互斥——至少有一個資源必須處於非共享狀態,即一次只能有一個進程使用。 佔有並等待——一個進程必須佔有至少一個資源,並等待另一

原创 操作系統面試—進程同步

本文是基於操作系統概念(第七版)第六章的學習總結,不足之處歡迎批評指正。 一、什麼是臨界區問題? 臨界區是指在該區域中,進程可能改變共同變量、更新一個表、寫一個文件等。如果多個進程進入臨界區進行修改,那麼將會引起混亂。 典型進程的通用結構

原创 程序員面試(c++)——面向對象

本文是對《程序員面試寶典》第10章——面向對象的學習總結,不足之處,歡迎多批評指正。 1、面向對象的三大原則: 封裝、繼承和多態。 什麼是封裝?就是將數據和對這些數據的操作統一到一個類裏面。封裝的思想很早之前就已經體現了,如通過頭文件#i

原创 求輸入n個整數中最小的k個數

題目:求輸入n個整數中最小的k個數。 思路: 1、特殊情況判斷,如果輸入數組爲空,或者k大於給定數組長度的,那麼輸出爲空。 2、正常情況下,這道題目應該通過構建最小堆算法來實現的,但由於最小堆本身實現比較複雜,在面試的短短几十分鐘內很難完

原创 cracking the code interview——c++實現

本系列是我對cracking the code interviews的c++實現和學習,不足之處歡迎批評指正。 題目:實現一個算法,判斷其中的字符是否都不相同。如果不能用數據結構,又該如何實現? 解:首先得向面試官問清楚是Unicode還

原创 二叉樹中和爲某一值的路徑

題目:輸入一顆二叉樹和一個整數,打印出二叉樹中結點值的和爲輸入整數的所有路徑。路徑定義爲從樹的根結點開始往下一直到葉結點所經過的結點形成一條路徑。 思路:首先進行分析題目,由於我們需要找到從根節點到葉節點的路徑,因此必須首先訪問根節點,之

原创 連續子數組的最大和

題目:連續子數組的最大和。 思路:舉個例子: {1,-2,4,5} 我們知道前兩個數組元素的和是-1,因此後面數組如加上這兩個元素將會更小。所以我們設置一個變量currentsum,表示遍歷到目前爲止的和,若和小於0,那我們設置其爲0,繼

原创 計算機網絡面試題

1、OSI,tcp/ip,五層協議的體系結構,以及各協議的作用 OSI/RM(開放系統互連基本參考模型),OSI開放系統互連,總共有七層協議:物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層和應用層。 tcp/ip(4層):網絡接口層、