劍指Offer之Java算法習(xí)題精講二叉搜索樹(shù)與數(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 {
int ans;
int pre;
public int minDiffInBST(TreeNode root) {
ans = Integer.MAX_VALUE;
pre = -1;
method(root);
return ans;
}
public void method(TreeNode root){
if(root==null) return;
method(root.left);
if(pre==-1){
pre = root.val;
}else{
ans = Math.min(ans,root.val-pre);
pre = root.val;
}
method(root.right);
}
}
題目二

?解法
class Solution {
public int dominantIndex(int[] nums) {
int f = Integer.MIN_VALUE;
int fi = 0;
int s = Integer.MIN_VALUE;
int si = 0;
for(int i = 0; i<nums.length;i++){
if(nums[i]>f){
s = f;
f = nums[i];
fi = i;
}else if(nums[i]>s){
s = nums[i];
}
}
if(nums.length==1) return 0;
if(2*s<=f) return fi;
return -1;
}
}
題目三

解法
class Solution {
public int repeatedNTimes(int[] nums) {
int n = nums.length/2;
HashMap<Integer,Integer> map =new HashMap<Integer,Integer>();
for(int key : nums){
if(map.containsKey(key)){
map.put(key,map.get(key)+1);
if(map.get(key)==n){
return key;
}
}else{
map.put(key,1);
}
}
return 0;
}
}
?題目四

?解法
class Solution {
public boolean uniqueOccurrences(int[] arr) {
int[] nums = new int[2000];
for(int i =0;i<arr.length;i++){
nums[arr[i]+1000]+=1;
}
HashSet<Integer> set =new HashSet<Integer>();
for(int i =0;i<nums.length;i++){
if(nums[i]==0) continue;
if(!set.add(nums[i])){
return false;
}else{
set.add(nums[i]);
}
}
return true;
}
}
到此這篇關(guān)于劍指Offer之Java算法習(xí)題精講二叉搜索樹(shù)與數(shù)組查找的文章就介紹到這了,更多相關(guān)Java 二叉搜索樹(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 劍指Offer之Java算法習(xí)題精講鏈表與字符串及數(shù)組
- 劍指Offer之Java算法習(xí)題精講二叉搜索樹(shù)與數(shù)組查找
- 劍指Offer之Java算法習(xí)題精講數(shù)組與字符串題
- 劍指Offer之Java算法習(xí)題精講N叉樹(shù)的遍歷及數(shù)組與字符串
- 劍指Offer之Java算法習(xí)題精講數(shù)組與字符串
- 劍指Offer之Java算法習(xí)題精講數(shù)組與列表的查找及字符串轉(zhuǎn)換
- 劍指Offer之Java算法習(xí)題精講字符串操作與數(shù)組及二叉搜索樹(shù)
- 劍指Offer之Java算法習(xí)題精講數(shù)組與二叉樹(shù)
相關(guān)文章
MapStruct @Mapping注解之處理映射中的Null值方式
這篇文章主要介紹了MapStruct @Mapping注解之處理映射中的Null值方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-03-03
java開(kāi)發(fā)的工廠方法模式及抽象工廠驗(yàn)證示例
這篇文章主要為大家介紹了java開(kāi)發(fā)中的工廠方法模式以及抽象工廠的驗(yàn)證示例,有需要的朋友可以借鑒參考下希望能夠有所幫助祝大家多多進(jìn)步2021-10-10
SpringBoot整合iText7導(dǎo)出PDF及性能優(yōu)化方式
在SpringBoot項(xiàng)目中整合iText7庫(kù)以導(dǎo)出PDF文件,不僅能夠滿足報(bào)告生成需求,而且可以處理復(fù)雜的文檔布局與樣式,整合步驟包括添加Maven依賴、編寫(xiě)PDF生成代碼,性能優(yōu)化方面,建議使用流式處理、緩存樣式與字體、優(yōu)化HTML/CSS結(jié)構(gòu)、采用異步處理2024-09-09
Hystrix?Turbine聚合監(jiān)控的實(shí)現(xiàn)詳解
微服務(wù)架構(gòu)下,?個(gè)微服務(wù)往往部署多個(gè)實(shí)例,如果每次只能查看單個(gè)實(shí)例的監(jiān)控,就需要經(jīng)常切換很不?便,在這樣的場(chǎng)景下,我們可以使??Hystrix?Turbine?進(jìn)?聚合監(jiān)控,它可以把相關(guān)微服務(wù)的監(jiān)控?cái)?shù)據(jù)聚合在?起,便于查看2022-09-09
項(xiàng)目連接nacos配置中心報(bào)錯(cuò):Client not connected, current
這篇文章主要介紹了項(xiàng)目連接nacos配置中心報(bào)錯(cuò):Client not connected, current status:STARTING的解決方案,采用了mysql作為持久化的數(shù)據(jù)庫(kù),docker作為運(yùn)行的環(huán)境,感興趣的朋友跟隨小編一起看看吧2024-03-03
關(guān)于@ApiImplicitParams、ApiImplicitParam的使用說(shuō)明
這篇文章主要介紹了關(guān)于@ApiImplicitParams、ApiImplicitParam的使用說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10

