劍指Offer之Java算法習題精講數(shù)組與二叉樹
題目一
二叉樹題——數(shù)組轉二叉樹
根據(jù)給定的數(shù)組按照指定條件轉換為高度平衡的二叉搜索樹
具體題目如下

解法
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode() {}
* TreeNode(int val) { this.val = val; }
* TreeNode(int val, TreeNode left, TreeNode right) {
* this.val = val;
* this.left = left;
* this.right = right;
* }
* }
*/
class Solution {
public TreeNode sortedArrayToBST(int[] nums) {
return method(nums,0,nums.length-1);
}
public TreeNode method(int[] nums,int lf,int rg){
if(lf>rg){
return null;
}
int mid = lf+(rg-lf)/2;
TreeNode root = new TreeNode(nums[mid]);
root.left = method(nums,lf,mid-1);
root.right = method(nums,mid+1,rg);
return root;
}
}題目二
數(shù)組題——驗證數(shù)組中數(shù)值
根據(jù)給定的數(shù)組驗證數(shù)組中數(shù)值是否出現(xiàn)多次
具體題目如下

解法
class Solution {
public boolean containsDuplicate(int[] nums) {
HashSet<Integer> set = new HashSet<Integer>();
for(int i = 0;i<nums.length;i++){
if(!set.add(nums[i])){
return true;
}
set.add(nums[i]);
}
return false;
}
}題目三
數(shù)組題——驗證數(shù)組中數(shù)值
根據(jù)給定的數(shù)組驗證數(shù)組中數(shù)值是否存在重復
具體題目如下

解法
class Solution {
public boolean containsNearbyDuplicate(int[] nums, int k) {
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
int length = nums.length;
for (int i = 0; i < length; i++) {
int num = nums[i];
if (map.containsKey(num) && i - map.get(num) <= k) {
return true;
}
map.put(num, i);
}
return false;
}
}到此這篇關于劍指Offer之Java算法習題精講數(shù)組與二叉樹的文章就介紹到這了,更多相關Java 數(shù)組內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Java使用Apache compress實現(xiàn)文件夾壓縮成Zip包
Apache common提供了很多實用的工具包,這篇文章主要來和大家介紹一下Java如何使用Apache compress包實現(xiàn)文件夾壓縮成Zip包,希望對大家有所幫助2024-01-01
java?數(shù)組實現(xiàn)學生成績統(tǒng)計教程
這篇文章主要介紹了java?數(shù)組實現(xiàn)學生成績統(tǒng)計教程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-12-12
Java如何將Excel數(shù)據(jù)導入到數(shù)據(jù)庫
這篇文章主要為大家詳細介紹了Java將Excel數(shù)據(jù)導入到數(shù)據(jù)庫的方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-10-10
IDEA啟動Tomcat報Unrecognized option: --add-opens=java
這篇文章主要為大家介紹了解決IDEA啟動Tomcat報Unrecognized option: --add-opens=java.base/java.lang=ALL-UNNAMED的方法,文中通過圖文介紹的非常詳細,需要的朋友可以參考下2023-08-08

