Python 官方文档:入门教程 => 点击学习
题目一 解法 class Solution { int ans; int pre; public int minDiffInBST(Treenode
解法
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;
}
}
到此这篇关于剑指Offer之Java算法习题精讲二叉搜索树与数组查找的文章就介绍到这了,更多相关Java 二叉搜索树内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
--结束END--
本文标题: 剑指Offer之Java算法习题精讲二叉搜索树与数组查找
本文链接: https://lsjlt.com/news/143048.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0