剑指Offer之Java算法习题精讲数组与字符和等差数列

 更新时间:2022年03月18日 11:42:59   作者:明天一定.  
跟着思路走,之后从简单题入手,反复去看,做过之后可能会忘记,之后再做一次,记不住就反复做,反复寻求思路和规律,慢慢积累就会发现质的变化

题目一

 解法

class Solution {
    public int[] relativeSortArray(int[] arr1, int[] arr2) {
        int[] arr = new int[1001];
        int[] ans = new int[arr1.length];
        int index = 0;
        for(int i =0;i<arr1.length;i++){
            arr[arr1[i]]+=1;
        }
        for(int i = 0;i<arr2.length;i++){
            while(arr[arr2[i]]>0){
                arr[arr2[i]]--;
                ans[index] = arr2[i];
                index++;
            }
        }
        for(int i =0;i<arr.length;i++){
            if(arr[i]!=0){
                for(int j =0;j<arr[i];j++){
                    ans[index] = i;
                    index++;
                }
            }
        }
        return ans;
    }
}

题目二

 解法

class Solution {
    public int findLucky(int[] arr) {
        int[] nums = new int[500];
        for(int i =0;i<arr.length;i++){
            nums[arr[i]]+=1;
        }
        int max = -1;
        for(int i = 1;i<nums.length;i++){
            if(i == nums[i]){
                max = Math.max(max,i);
            }
        }
        return max;
    }
}

题目三

 解法

class Solution {
    public int maxPower(String s) {
        if(s.length()==1) return 1;
        int left = 1;
        int max = Integer.MIN_VALUE;
        int con = 1;
        while(left<s.length()){
            if(s.charAt(left)==s.charAt(left-1)){
                con++;
                max = Math.max(con,max);
            }else{
                max = Math.max(con,max);
                con = 1;
            }
            left++;
        }
        return max;
    }
}

题目四

 解法

class Solution {
    public boolean canMakeArithmeticProgression(int[] arr) {
        Arrays.sort(arr);
        int num = arr[1]-arr[0];
        
        for(int i = 1;i<arr.length;i++){
            if(arr[i]-arr[i-1]==num){
                continue;
            }else{
                return false;
            }
        }
        return true;
    }
}

到此这篇关于剑指Offer之Java算法习题精讲数组与字符和等差数列的文章就介绍到这了,更多相关Java 数组内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • springboot数据库操作图文教程

    springboot数据库操作图文教程

    本文以图文并茂的形式给大家介绍了springboot数据库操作,感兴趣的朋友一起看看吧
    2017-07-07
  • Java Spring MVC获取请求数据详解操作

    Java Spring MVC获取请求数据详解操作

    Spring MVC 是 Spring 提供的一个基于 MVC 设计模式的轻量级 Web 开发框架,本质上相当于 Servlet,Spring MVC 角色划分清晰,分工明细。由于 Spring MVC 本身就是 Spring 框架的一部分,可以说和 Spring 框架是无缝集成
    2021-11-11
  • 浅谈IDEA实用的Servlet模板

    浅谈IDEA实用的Servlet模板

    今天给大家分享一下IDEA实用的Servlet模板,文中有非常详细的图文介绍及代码示例,对小伙伴们很有帮助哦,需要的朋友可以参考下
    2021-05-05
  • Java实现双保险线程的示例代码

    Java实现双保险线程的示例代码

    这篇文章主要介绍了Java实现双保险线程的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • 浅谈Java工程读取resources中资源文件路径的问题

    浅谈Java工程读取resources中资源文件路径的问题

    下面小编就为大家带来一篇浅谈Java工程读取resources中资源文件路径的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • springboot如何使用logback-spring配置日志格式,并分环境配置

    springboot如何使用logback-spring配置日志格式,并分环境配置

    这篇文章主要介绍了springboot如何使用logback-spring配置日志格式,并分环境配置的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • SpringBoot一个非常蛋疼的无法启动的问题解决

    SpringBoot一个非常蛋疼的无法启动的问题解决

    这篇文章主要介绍了SpringBoot一个非常蛋疼的无法启动的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • Java内存溢出的几个区域总结(注意避坑!)

    Java内存溢出的几个区域总结(注意避坑!)

    内存溢出是指应用系统中存在无法回收的内存或使用的内存过多,最终使得程序运行要用到的内存大于虚拟机能提供的最大内存,下面这篇文章主要给大家介绍了关于Java内存溢出的几个区域,总结出来给大家提醒注意避坑,需要的朋友可以参考下
    2022-11-11
  • Java实现的简单图片上传功能示例

    Java实现的简单图片上传功能示例

    这篇文章主要介绍了Java实现的简单图片上传功能,结合实例形式分析了java图片传输相关的检验、传输、接收等相关操作技巧,需要的朋友可以参考下
    2017-09-09
  • Java键值对Pair的使用方式和操作实现

    Java键值对Pair的使用方式和操作实现

    键值对是一种常见的数据结构,它由一个唯一的键和与之关联的值组成,本文就来介绍一下Java键值对Pair的使用方式和操作实现,具有一定的参考价值,感兴趣的可以了解一下
    2023-12-12

最新评论