剑指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 去掉netflix 禁用Eureka的解决方法
这篇文章主要介绍了springboot 去掉netflix 禁用Eureka的解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2023-09-09
解决IDEA创建第一个spring boot项目提示cannot resolve xxx等
这篇文章主要介绍了解决IDEA创建第一个spring boot项目提示cannot resolve xxx等错误问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2024-01-01


最新评论