JAVA 高頻算法面試題彙總

 

1、字符串(String)類算法面試題

1) String, StringBuilder 和 StringBuffer 三者有什麼不一樣?node

2) 爲何String類型在Java中是不可變的?面試

3) 在Java語言中,如何split string?
4) 爲何char數組能比String更好的去存儲password?

5) 寫一個函數判斷一個字符串是不是迴文串?

OJ 地址:http://www.lintcode.com/en/problem/valid-palindrome/

參考答案:http://www.jiuzhang.com/solution/valid-palindrome/算法

6) 寫一個函數實現從字符串中刪除任意給出的字符數組

7) 分別用遞歸和非遞歸的方法,打印出一個字符串的全部全排列

OJ 地址:http://www.lintcode.com/en/problem/string-permutation-ii/

參考答案:http://www.jiuzhang.com/solution/string-permutation-ii/數據結構

8) 寫一個函數,從給出的字符串中求出由這些字母構成的最長的迴文串。

OJ 地址:http://www.lintcode.com/en/problem/longest-palindrome/

參考答案:http://www.jiuzhang.com/solution/longest-palindrome/併發

9) 如何從一個字符串中找出第一個非重複的字符?函數

10) 如何併發計算一個給定的字符在字符串中出現的次數?測試

11) 寫出一個函數判斷兩個字符串是否能夠經過改變字母的順序變成同樣的字符串

OJ 地址:http://www.lintcode.com/en/problem/two-strings-are-anagrams/

參考答案:http://www.jiuzhang.com/solution/two-strings-are-anagrams/ui

12) 如何轉換以一個數字化的字符串變成一個整數?

OJ 地址:http://www.lintcode.com/en/problem/string-to-integer/

參考答案:http://www.jiuzhang.com/solution/string-to-integer/spa

2、數組(Array)類算法面試題

1) 一個包含1-100數字的數組中,有一個數字丟失了,如何快速的找出它?

OJ 地址:http://www.lintcode.com/en/problem/find-the-missing-number/

參考答案:http://www.jiuzhang.com/solution/find-the-missing-number/

2)一個包含1-100數字的數組中,有一個數字重複了,如何快速的找出它?

OJ 地址:http://www.lintcode.com/en/problem/find-the-duplicate-number/

參考答案:http://www.jiuzhang.com/solution/find-the-duplicate-number/

3)一個包含1-100數字的數組中,有多個數字重複了,如何快速的找出他們?

4) 給出兩個數組,如何找出那些出如今第一個數組中,可是沒有出如今第二個數組中的數字?

5) 如何找出第二大的數在一個整數數組中?

OJ 地址:http://www.lintcode.com/zh-cn/problem/second-max-of-array/
參考答案:http://www.jiuzhang.com/solution/second-max-of-array/

6) 找出全部和等於給出數組的兩兩組合的pair對

OJ 地址:http://www.lintcode.com/en/problem/two-sum-unique-pairs/

參考答案:http://www.lintcode.com/zh-cn/problem/two-sum-unique-pairs/

7) 用Java實現如何從一個數組中移除重複的元素?
OJ 地址:http://www.lintcode.com/en/problem/remove-duplicate-numbers-in-array/

參考答案:http://www.lintcode.com/zh-cn/problem/remove-duplicate-numbers-in-array/ 8) 如何找出最大和最小的數字在一個數組中?

OJ 測試:http://www.lintcode.com/en/problem/max-of-array/

參考答案:http://www.lintcode.com/zh-cn/problem/max-of-array/

9) 如何找出最大的兩個數在一個數組中?

3、鏈表(Linkedlist)類算法題

1) 如何找出一個單向鏈表的中間元素?

OJ 測試:http://www.lintcode.com/en/problem/middle-of-linked-list/

參考答案:http://www.jiuzhang.com/solution/middle-of-linked-list/

2) 如何找出單向鏈表中的倒數第3個元素?

OJ 地址:http://www.lintcode.com/en/problem/nth-to-last-node-in-list/

參考答案: http://www.jiuzhang.com/solution/nth-to-last-node-in-list/

3) 如何判斷一個單項鍊表是否與環? 若是有環,如何找出環的起始位置?

OJ 測試:http://www.lintcode.com/en/problem/linked-list-cycle/

參考答案:http://www.jiuzhang.com/solution/linked-list-cycle/

4)如何翻轉一個鏈表?

OJ 測試:http://www.lintcode.com/en/problem/reverse-linked-list/

參考答案:http://www.jiuzhang.com/solution/reverse-linked-list/

5) 比較鏈表和數組這兩個數據結構的不一樣點

4、二叉樹(Binary Tree)類算法題

1) 如何找出樹的深度?

OJ 測試:http://www.lintcode.com/en/problem/maximum-depth-of-binary-tree/

參考答案:http://www.jiuzhang.com/solution/maximum-depth-of-binary-tree/

2)寫一個函數打印出樹的中序遍歷

OJ 測試:http://www.lintcode.com/en/problem/binary-tree-inorder-traversal/

參考答案:http://www.jiuzhang.com/solution/binary-tree-inorder-traversal/

3) 打印出書的全部葉子節點

OJ 測試:http://www.lintcode.com/en/problem/binary-tree-leaf-sum/

參考答案:http://www.jiuzhang.com/solution/binary-tree-leaf-sum/

4) 用Java寫一個方法,判斷一棵樹是不是二叉搜索樹

OJ 測試:http://www.lintcode.com/en/problem/validate-binary-search-tree/

參考答案:http://www.jiuzhang.com/solution/validate-binary-search-tree/

5) 用Java判斷一棵樹是不是平衡樹

OJ 測試:http://www.lintcode.com/en/problem/balanced-binary-tree/

參考答案:http://www.jiuzhang.com/solution/balanced-binary-tree/

5、查找和排序類(Searching and Sorting)

1) 寫一個程序用快排原地排序一個數組

OJ 測試:http://www.lintcode.com/en/problem/sort-integers-ii/

參考答案:http://www.jiuzhang.com/solution/sort-integers-ii/

2) 用Java或者C++寫一個程序去實現二分搜索算法

OJ 測試:http://www.lintcode.com/en/problem/classical-binary-search/
參考答案:http://www.jiuzhang.com/solution/classical-binary-search/

3) 如何使用Comparator, 在Java內實現對對象的排序

4) 用Java寫一個程序去實現插入排序

OJ 測試:http://www.lintcode.com/en/problem/sort-integers/

參考答案:http://www.jiuzhang.com/solution/sort-integers/

5) 用Java寫一個程序去實現冒泡排序

OJ 測試:http://www.lintcode.com/en/problem/sort-integers/

參考答案:http://www.jiuzhang.com/solution/sort-integers/

6、數(Numbers)

1) 寫一個程序去判斷一個數是不是2的冪次

OJ 測試:http://www.lintcode.com/en/problem/o1-check-power-of-2/

參考答案:http://www.jiuzhang.com/solution/o1-check-power-of-2/

2) 寫一個程序去判斷一個數字是不是迴文的

3) 寫一個程序判斷一個整數是不是水仙花數?

OJ 測試:http://www.lintcode.com/en/problem/narcissistic-number/

參考答案:http://www.jiuzhang.com/solution/narcissistic-number/

4) 寫一個程序,找出給出數字的全部素因子

OJ 測試:http://www.lintcode.com/en/problem/prime-factorization/

參考答案:http://www.jiuzhang.com/solution/prime-factorization/

5) 寫一個函數去計算第n個斐波那契數?是否能用遞歸和非遞歸兩種方法?

OJ 測試:http://www.lintcode.com/en/problem/fibonacci/

參考答案:http://www.jiuzhang.com/solution/fibonacci/

相關文章
相關標籤/搜索