剑指Offer之Java算法习题精讲二叉搜索树与数组查找

题目一

剑指Offer之Java算法习题精讲二叉搜索树与数组查找_第1张图片

解法

class Solution {
    public int[] intersection(int[] nums1, int[] nums2) {
        int[] a = new int[1000];
        HashSet set = new HashSet();
        for(int i = 0;i iterator = set.iterator();
        while (iterator.hasNext()){
            w[p] = iterator.next();
            p++;
        }
        return w;        
    }
}

 题目二

剑指Offer之Java算法习题精讲二叉搜索树与数组查找_第2张图片

解法

class Solution {
    public int[] intersect(int[] nums1, int[] nums2) {
        int[] a = new int[1001];
        ArrayList list = new ArrayList();
        for(int i = 0;i0){
                list.add(nums2[i]);
                a[nums2[i]]--;
            }
        }
        int[] w = new int[list.size()];
        for(int j = 0;j 
 

题目三

剑指Offer之Java算法习题精讲二叉搜索树与数组查找_第3张图片

 解法

/** 
 * 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 二叉搜索树内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

你可能感兴趣的:(剑指Offer之Java算法习题精讲二叉搜索树与数组查找)