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

解法
/**
* 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ù)組題——驗(yàn)證數(shù)組中數(shù)值
根據(jù)給定的數(shù)組驗(yàn)證數(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ù)組題——驗(yàn)證數(shù)組中數(shù)值
根據(jù)給定的數(shù)組驗(yàn)證數(shù)組中數(shù)值是否存在重復(fù)
具體題目如下

解法
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;
}
}到此這篇關(guān)于劍指Offer之Java算法習(xí)題精講數(shù)組與二叉樹的文章就介紹到這了,更多相關(guān)Java 數(shù)組內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 劍指Offer之Java算法習(xí)題精講鏈表與數(shù)組專項(xiàng)訓(xùn)練
- 劍指Offer之Java算法習(xí)題精講鏈表與二叉樹專項(xiàng)訓(xùn)練
- 劍指Offer之Java算法習(xí)題精講二叉樹的構(gòu)造和遍歷
- 劍指Offer之Java算法習(xí)題精講二叉樹專項(xiàng)訓(xùn)練
- 劍指Offer之Java算法習(xí)題精講鏈表與字符串及數(shù)組
- 劍指Offer之Java算法習(xí)題精講二叉搜索樹與數(shù)組查找
- 劍指Offer之Java算法習(xí)題精講數(shù)組與字符串題
- 劍指Offer之Java算法習(xí)題精講字符串與二叉搜索樹
- 劍指Offer之Java算法習(xí)題精講數(shù)組查找與字符串交集
相關(guān)文章
java使用計(jì)算md5校驗(yàn)碼方式比較兩個(gè)文件是否相同
MD5文件效驗(yàn)碼是一個(gè)判斷文件是否是相同文件的途徑,通過比較兩個(gè)文件的Md5效驗(yàn)碼是否相同來精確判斷兩個(gè)文件是否相同2014-04-04
Spring?Boot如何監(jiān)控SQL運(yùn)行情況?
Druid是Java語言中最好的數(shù)據(jù)庫連接池,下面這篇文章主要給大家介紹了關(guān)于Spring?Boot如何監(jiān)控SQL運(yùn)行情況的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-04-04
Java使用Apache compress實(shí)現(xiàn)文件夾壓縮成Zip包
java?數(shù)組實(shí)現(xiàn)學(xué)生成績統(tǒng)計(jì)教程
Java如何將Excel數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫
IDEA啟動(dòng)Tomcat報(bào)Unrecognized option: --add-opens=java

