欢迎来到代码驿站!

JAVA代码

当前位置:首页 > 软件编程 > JAVA代码

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

时间:2022-09-18 11:12:27|栏目:JAVA代码|点击:

题目一

 解法

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;
    }
}

上一篇:Java请求流量合并和拆分提高系统的并发量示例

栏    目:JAVA代码

下一篇:详解SpringMVC中的异常处理

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

本文地址:http://www.codeinn.net/misctech/213968.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有