试编写一个算法,判别给定的二叉树是否是二叉搜索树,二叉树的遍历算法例题
题目一
解法
/** *二叉树节点的定义。*公共类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解决方案{ int ansint prepublic int minDiffInBST(TreeNode root){ ans=Integer .MAX _ value pre=-1;方法(根);返回ans}公共空间方法(TreeNode root){ if(root==null)return;方法(根。左);if(pre==-1){ pre=root。val}else{ ans=Math.min(ans,root。val-pre);pre=root.val}方法(根。对);}}
题目二
解法
类解决方案{ public int dominant index(int[]nums){ int f=整数.最小值;int fi=0;int s=整数。最小值;int si=0;for(int I=0;inums . 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)返回0;如果(2*s=f)返回fi;return-1;}}
题目三
解法
类解决方案{ public int repeated n times(int[]nums){ int n=nums.length/2; hashmap Integer,Integer map=new HashMapInteger,Integer();for(int key : nums){ if(map。包含key(key)){ map。放(键,地图。get(key)1);如果(图。get(key)==n){ return key;} }else{ map.put(key,1);} }返回0;}}
题目四
解法
class Solution { public boolean unique occurrences(int[]arr){ int[]nums=new int[2000];for(int I=0;iarr。长度;I){ nums[arr[I]1000]=1;} HashSetInteger set=new HashSetInteger();for(int I=0;inums.lengthi ){ if(nums[i]==0)继续;如果(!设置。add(nums[I]){ return false;} else { set。add(nums[I]);} }返回true}}到此这篇关于剑指提供之爪哇算法习题精讲二叉搜索树与数组查找的文章就介绍到这了,更多相关爪哇二叉搜索树内容请搜索盛行信息技术以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行它!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。