剑指Offer之Java算法习题精讲二叉搜索树与数组查找
更新时间:2022年03月22日 09:51:05 作者:明天一定.
跟着思路走,之后从简单题入手,反复去看,做过之后可能会忘记,之后再做一次,记不住就反复做,反复寻求思路和规律,慢慢积累就会发现质的变化
题目一
数组题——查找数组中交集
根据给定的两个数组按照指定条件查找它们的交集并返回
具体题目如下
解法
class Solution { public int[] intersection(int[] nums1, int[] nums2) { int[] a = new int[1000]; HashSet<Integer> set = new HashSet<Integer>(); for(int i = 0;i<nums1.length;i++){ if(a[nums1[i]]==0){ a[nums1[i]]=1; } } for(int i = 0;i<nums2.length;i++){ if(a[nums2[i]]!=0){ set.add(nums2[i]); } } int[] w = new int[set.size()]; int p = 0; Iterator<Integer> iterator = set.iterator(); while (iterator.hasNext()){ w[p] = iterator.next(); p++; } return w; } }
题目二
数组题——查找数组中交集
根据给定的两个数组按照指定条件查找它们的交集并返回
具体题目如下
解法
class Solution { public int[] intersect(int[] nums1, int[] nums2) { int[] a = new int[1001]; ArrayList<Integer> list = new ArrayList<Integer>(); for(int i = 0;i<nums1.length;i++){ a[nums1[i]]+=1; } for(int i = 0;i<nums2.length;i++){ if(a[nums2[i]]>0){ list.add(nums2[i]); a[nums2[i]]--; } } int[] w = new int[list.size()]; for(int j = 0;j<w.length;j++){ w[j] = list.get(j); } return w; } }
题目三
概率题——猜数字
根据给定的猜数字规则编写函数比较猜数大小
具体题目如下
解法
/** * Forward declaration of guess API. * @param num your guess * @return -1 if num is lower than the guess number * 1 if num is higher than the guess number * otherwise return 0 * int guess(int num); */ public class Solution extends GuessGame { public int guessNumber(int n) { int left = 1; int right = n; while(left<=right){ int mid = left+(right-left)/2; if(guess(mid)==-1){ right = mid-1; } if(guess(mid)==1){ left = mid+1; } if(guess(mid)==0){ return mid; } } return 0; } }
到此这篇关于剑指Offer之Java算法习题精讲二叉搜索树与数组查找的文章就介绍到这了,更多相关Java 二叉搜索树内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Java使用Thread和Runnable的线程实现方法比较
这篇文章主要介绍了Java使用Thread和Runnable的线程实现方法,结合实例形式对比分析了Java使用Thread和Runnable实现与使用线程的相关操作技巧,需要的朋友可以参考下2019-10-10idea resources目录下的application.properties不能自动提示问题
这篇文章主要介绍了idea resources目录下的application.properties不能自动提示问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2023-11-11TransmittableThreadLocal通过javaAgent实现线程传递并支持ForkJoin
这篇文章主要介绍了TransmittableThreadLocal通过javaAgent实现线程传递并支持ForkJoin详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-06-06
最新评论