幾個有意思的網際網路面試題目總結(更新)

2021-09-12 00:13:01 字數 1757 閱讀 4097

給定乙個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。

說明:你的演算法應該具有線性時間複雜度。 你可以不使用額外空間來實現嗎?

示例 1:

輸入: [2,2,1] 輸出: 1

示例 2:

輸入: [4,1,2,1,2] 輸出: 4

位運算。

乙個數異或乙個與他相同的數結果為0.

0異或乙個數結果為這個數本身。

所以從頭到尾將所有數異或一次,得到的結果就是那個只出現一次的數,其他數都抵消了。

class solution

return temp;

}};

給定乙個大小為 n 的陣列,找到其中的眾數。眾數是指在陣列**現次數大於 ⌊ n/2 ⌋ 的元素。

你可以假設陣列是非空的,並且給定的陣列總是存在眾數。

示例 1:

輸入: [3,2,3] 輸出: 3

示例 2:

輸入: [2,2,1,1,1,2,2] 輸出: 2

方法一:

用內建容器map記錄出現的次數。

class solution

}return 0;

}};

方法二:

排序

class solution

};

方法三:

摩爾投票法

class solution

else

else}}

return temp;

}};

搜尋二維矩陣 ii

編寫乙個高效的演算法來搜尋 m x n 矩陣 matrix 中的乙個目標值 target。該矩陣具有以下特性:

示例:現有矩陣 matrix 如下:

[ [1, 4, 7, 11, 15],

[2, 5, 8, 12, 19],

[3, 6, 9, 16, 22],

[10, 13, 14, 17, 24],

[18, 21, 23, 26, 30] ]

給定 target = 5,返回 true。

給定 target = 20,返回 false。

class solution

int col = matrix[0].size();

int i = 0, j = col - 1;

while(i >= 0 && i < row && j >= 0 && j < col)

else if(matrix[i][j] < target)

else

}return false;

}};

給定兩個有序整數陣列 nums1 和 nums2,將 nums2 合併到 nums1 中,使得 num1 成為乙個有序陣列。

說明:示例:

輸入: nums1 = [1,2,3,0,0,0], m = 3 nums2 = [2,5,6], n = 3 輸出: [1,2,2,3,5,6]

原地演算法,先把nums1中的元素移動到nums1陣列的最後面。

class solution

i++, j++;

int k = 0;

while(i < size && j < n)

else

}while(i < size)

while(j < n)

}};

幾個有意思的面試題

1,abcdx9 dcba 因為9乘a不進製所以a只能是1 9乘d得個位是1所以d只能是9 同樣9乘b也不能進製只有1和0,1已屬a所以b只能是0 9乘9進8要想第二位為0,乘9的個位上必須是2,c就只有8了 所以abcd 1089 2,一艘輪船從甲港順水航行到乙港,立即逆水返回甲港。共用8小時。已...

指標幾個有意思的面試題

題一 int main int ptr int arr 1 printf d d a 1 ptr 1 執行結果 2 5 return 0 考察知識點 1.陣列名為首元素的位址,給其進行 1操作其實就是指標向後走一步,也就是第二個元素的位址 2.取位址陣列名 arr 取到的是整個陣列的位址,雖然其指向...

有意思的面試題

1.10個箱子,每個箱子10個蘋果,其中乙個箱子的蘋果是9兩 個,其他的都是1斤 個。要求利用乙個秤,只秤一次,找出那個裝9兩 個的箱子。1,他們都是很聰明的人 2,他們的原則是先求保命,再去多殺人 3,100顆不必都分完 4,若有重複的情況,則也算最大或最小,一併處死 3.現在北京有一套房子,20...