剑指Offer之Java算法习题精讲二叉搜索树与数组查找
题目一
文章图片
解法
/** * 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; if){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; HashMapmap =new HashMap (); 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 set =new HashSet(); for(int i =0; i
【剑指Offer之Java算法习题精讲二叉搜索树与数组查找】到此这篇关于剑指Offer之Java算法习题精讲二叉搜索树与数组查找的文章就介绍到这了,更多相关Java 二叉搜索树内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
推荐阅读
- Python全栈之学习CSS(2)
- Java基础知识之CharArrayReader流的使用
- 多次调用|多次调用 BAPI 之后,最后一次性 COMMIT WORK,会有什么问题吗()
- 安全学习笔记-web安全之XSS攻击
- JAVA人生|程序员30岁之前年薪不到40W,再不转行都晚了()
- java|开源 非开源_在从事开源律师职业之前要了解的内容
- 并发异步编程之争(协程(asyncio)到底需不需要加锁((线程/协程安全/挂起/主动切换)Python3))
- 剑指Offer之Java算法习题精讲二叉树与链表
- 剑指Offer之Java算法习题精讲二叉树专项解析
- 剑指Offer之Java算法习题精讲排列与N叉树