剑指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的线程实现方法,结合实例形式对比分析了Java使用Thread和Runnable实现与使用线程的相关操作技巧,需要的朋友可以参考下
    2019-10-10
  • Spring Boot 单元测试和集成测试实现详解

    Spring Boot 单元测试和集成测试实现详解

    这篇文章主要介绍了Spring Boot 单元测试和集成测试实现详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • Java中的指令重排详解

    Java中的指令重排详解

    在 Java 中,指令重排是一种性能优化技术,它涉及到编译器和处理器对程序中指令的执行顺序进行调整,以提高执行效率,本文给大家详细介绍了Java中的指令重排,需要的朋友可以参考下
    2023-12-12
  • 基于maven的三种packaging方式

    基于maven的三种packaging方式

    这篇文章主要介绍了maven的三种packaging方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • idea resources目录下的application.properties不能自动提示问题

    idea resources目录下的application.properties不能自动提示问题

    这篇文章主要介绍了idea resources目录下的application.properties不能自动提示问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • Java设计模式之观察者模式(Observer模式)介绍

    Java设计模式之观察者模式(Observer模式)介绍

    这篇文章主要介绍了Java设计模式之观察者模式(Observer模式)介绍,Java深入到一定程度,就不可避免的碰到设计模式(design pattern)这一概念,了解设计模式,将使自己对java中的接口或抽象类应用有更深的理解,需要的朋友可以参考下
    2015-03-03
  • SpringBoot统一功能处理的方式详解

    SpringBoot统一功能处理的方式详解

    这篇文章主要为大家详细介绍了SpringBoot统一功能处理的方式,文中的示例代码讲解详细,对我们学习或工作有一定借鉴价值,需要的可以参考一下
    2022-08-08
  • Spring boot配置多数据源代码实例

    Spring boot配置多数据源代码实例

    这篇文章主要介绍了Spring boot配置多数据源代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • TransmittableThreadLocal通过javaAgent实现线程传递并支持ForkJoin

    TransmittableThreadLocal通过javaAgent实现线程传递并支持ForkJoin

    这篇文章主要介绍了TransmittableThreadLocal通过javaAgent实现线程传递并支持ForkJoin详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06
  • springboot 多环境配置 yml文件版的实现方法

    springboot 多环境配置 yml文件版的实现方法

    这篇文章主要介绍了springboot 多环境配置 yml文件版的实现方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06

最新评论