遇到的面試中的程式設計題總結

2021-06-18 17:38:36 字數 415 閱讀 3227

一、找出單鏈表的中間元素

思路:(1)常規解法;【不好】

(2)兩個指標,乙個指標是另乙個指標移動速度的兩倍,當快的指標指向鍊錶的尾部時,慢的指標就指向了鍊錶的中間元素。

同理,可以求出單鏈表的任意倍數的位置,並且只需要掃瞄一遍單鏈表。如求指向單鏈表1/3,1/4,1/5,2/3等位置的元素。

二、給定整形陣列,完善函式,將陣列排序。

int sort_descending(int array)

常規錯誤:通過sizeof(array)/sizeof(int)獲得整形陣列的長度,然後進行排序。

解決方法:(1)通過形參給定整形陣列長度。顯然這種方法已經不行了;

(2)在整形陣列最後新增最大或最小的整數,最小的整數為0x80000000,最大的為0x7fffffff(sizeof int = 4)

面試中遇到的那些程式設計題

if typeof string.prototype.countcharacters function len this.length for i 0 i len i else var max key,max num 0 for var key in obj return 測試 var str ab...

面試 面試中遇到的演算法題

概念平面內兩條線段位置關係的判定在很多領域都有著廣泛的應用,比如遊戲 cad 圖形處理等,而兩線段交點的求解又是該演算法中重要的一環。本文將盡可能用通俗的語言詳細的描述一種主流且效能較高的判定演算法。為方便計算,對座標點的大小比較作如下定義 x座標較大的點為大,x座標相等但y座標較大的為大,x與y都...

面試中遇到的問題總結

兩個或者兩個以上執行緒在執行過程中,因爭奪資源而產生互相等待的現象,若無外力作用,他們都將無法推進下去,此時,稱系統處於死鎖。四個條件,互斥,請求保持,不可剝奪,環路等待。破壞任一條件即可 預防破壞請求保持,程序必須一次申請所有需要的資源。資源分層,破壞環路等待。避免是在程序每次申請資源時判斷是否是...