去哪兒網2023年春季校園招聘技術筆試題

2021-06-29 07:44:59 字數 1244 閱讀 9972

1.請實現以下函式 int  indexof(int array,int target),給定乙個迴圈有序的陣列,請在這個陣列中找到指定元素,找到的話返回下標,沒有返回-1.該陣列的特點是它是乙個單調遞增的陣列向右迴圈移位形成的。舉例說明,原陣列是[4,8,13,20,23,34,41,52] 經過向右迴圈移位形成的陣列可能[23,34,41,52,4,8,13,20],也可能是[4,8,13,20,23,34,41,52]。

演算法思想:一般的有序陣列我們都會選擇使用二分法來查詢指定的元素,但是當有序陣列移位後,可能就不能用原來的二分法來直接查詢,但是即使是移位的有序陣列,一旦找到了分界點之後,陣列就仍然是有序的。所以可以通過另一種模式的二分法來實現找到制定元素。

(1)先定義中間元素;

(2)將中間元素與頭尾元素相比較確定分界點是在中間元素的左邊還是右邊,[1]如果中間元素比左邊大,右邊小,證明沒移動;[2]如果中間元素比左邊小,而且也比右邊小,證明分界點在中間元素左邊;[3]如果中間元素比左邊大,而且比右邊大,證明分界點在中間元素右邊。

(3)將要查詢的元素與中間元素相比較,以及首或尾的元素相比較,判斷是在左邊還是在右邊。第一遍沒找到的話重複步驟(1),(2),(3);

#include int dichotomy_search(int arr,int low,int high,int value);

int main()

; int len=sizeof(arr)/sizeof(int);

// int value=arr[8];

for (int i=0;i=low)

else

}else if (arr[low]<=arr[mid]&&arr[mid]>=arr[high])

else}}

return -1;

}

2 請完成右側函式,該函式功能是解密乙個給定字串,解密的規則是將兩個數字間(前面沒有數字的情況下算開頭和數字間)的字串重複數字次數,數字不會超過int表示的範圍。

比如a2bc3d1,解密後字串是aabcbcbcd;

#include #include #include using namespace std;

string decode(string str);

int main()

string decode(string str)

flag=i+1;

} }return str1;

}

去哪兒網2015校園招聘前端筆試題

我應聘的是前端工程師。筆試就考了四道前端題,個人覺得基礎倒是考到了,但是前端方面的知識沒有多大聯絡,四道題,有三道題都是寫函式,只有一道題貼近了css,自己做的也一般一般。現在將四道題分享給大家,希望對大家的面試有幫助。1.寫乙個函式padstare string str1,min lenthg,s...

2023年去哪兒網Qunar面試題

1 自我介紹 2 問筆試試題 3 筆試題中有乙個程式要求置亂演算法,我看你寫的加密演算法 我寫的是凱撒加密演算法,就是移位 你知道哪些加密演算法?4 了解多執行緒 多程序嗎5 知道網路攻擊嗎?說一下你知道的網路攻防 6 用過linux吧,說一下你知道的linux命令 7 了解awk嗎 8 有的面試官...

美團網2015秋季校園招聘面試題(上)

1.http協議請求方法get和post的區別?答 1 get方法提交資料不安全,資料置於請求行,客戶端位址列可見,而且請求的url一般會記錄在伺服器的訪問日誌中,而伺服器的訪問日誌是黑客攻擊的重點物件之一 get方法提交的資料大小限制在255個字元之內 get方法不可以設定書籤。2 post方法提...