Python 官方文档:入门教程 => 点击学习
题目一 解法 class Solution { public int[] relativeSortArray(int[] arr1, int[] arr2) {
解法
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 数组内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
--结束END--
本文标题: 剑指Offer之Java算法习题精讲数组与字符和等差数列
本文链接: https://www.lsjlt.com/news/143020.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0