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

网友投稿 259 2022-08-19


剑指Offer之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

arr[arr1[i]]+=1;

}

for(int i = 0;i

while(arr[arr2[i]]>0){

arr[arr2[i]]--;

ans[index] = arr2[i];

index++;

}

}

for(int i =0;i

if(arr[i]!=0){

for(int j =0;j

ans[index] = i;

index++;

}

}

}

return ans;

}

}

题目二

解法

class Solution {

public int findLucky(int[] arr) {

int[] nums = new int[500];

http:// for(int i =0;i

nums[arr[i]]+=1;

}

int max = -1;

for(int i = 1;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

if(s.charAt(left)==s.charAt(left-1)){

con++;

max = Math.max(con,max);

}else{

max = Math.mahttp://x(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

if(arr[i]-arr[i-1]==num){

continue;

}else{

return false;

}

}

return true;

}

}

arr[arr1[i]]+=1;

}

for(int i = 0;i

while(arr[arr2[i]]>0){

arr[arr2[i]]--;

ans[index] = arr2[i];

index++;

}

}

for(int i =0;i

if(arr[i]!=0){

for(int j =0;j

ans[index] = i;

index++;

}

}

}

return ans;

}

}

题目二

解法

class Solution {

public int findLucky(int[] arr) {

int[] nums = new int[500];

http:// for(int i =0;i

nums[arr[i]]+=1;

}

int max = -1;

for(int i = 1;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

if(s.charAt(left)==s.charAt(left-1)){

con++;

max = Math.max(con,max);

}else{

max = Math.mahttp://x(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

if(arr[i]-arr[i-1]==num){

continue;

}else{

return false;

}

}

return true;

}

}

while(arr[arr2[i]]>0){

arr[arr2[i]]--;

ans[index] = arr2[i];

index++;

}

}

for(int i =0;i

if(arr[i]!=0){

for(int j =0;j

ans[index] = i;

index++;

}

}

}

return ans;

}

}

题目二

解法

class Solution {

public int findLucky(int[] arr) {

int[] nums = new int[500];

http:// for(int i =0;i

nums[arr[i]]+=1;

}

int max = -1;

for(int i = 1;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

if(s.charAt(left)==s.charAt(left-1)){

con++;

max = Math.max(con,max);

}else{

max = Math.mahttp://x(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

if(arr[i]-arr[i-1]==num){

continue;

}else{

return false;

}

}

return true;

}

}

if(arr[i]!=0){

for(int j =0;j

ans[index] = i;

index++;

}

}

}

return ans;

}

}

题目二

解法

class Solution {

public int findLucky(int[] arr) {

int[] nums = new int[500];

http:// for(int i =0;i

nums[arr[i]]+=1;

}

int max = -1;

for(int i = 1;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

if(s.charAt(left)==s.charAt(left-1)){

con++;

max = Math.max(con,max);

}else{

max = Math.mahttp://x(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

if(arr[i]-arr[i-1]==num){

continue;

}else{

return false;

}

}

return true;

}

}

ans[index] = i;

index++;

}

}

}

return ans;

}

}

题目二

解法

class Solution {

public int findLucky(int[] arr) {

int[] nums = new int[500];

http:// for(int i =0;i

nums[arr[i]]+=1;

}

int max = -1;

for(int i = 1;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

if(s.charAt(left)==s.charAt(left-1)){

con++;

max = Math.max(con,max);

}else{

max = Math.mahttp://x(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

if(arr[i]-arr[i-1]==num){

continue;

}else{

return false;

}

}

return true;

}

}

nums[arr[i]]+=1;

}

int max = -1;

for(int i = 1;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

if(s.charAt(left)==s.charAt(left-1)){

con++;

max = Math.max(con,max);

}else{

max = Math.mahttp://x(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

if(arr[i]-arr[i-1]==num){

continue;

}else{

return false;

}

}

return true;

}

}

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

if(s.charAt(left)==s.charAt(left-1)){

con++;

max = Math.max(con,max);

}else{

max = Math.mahttp://x(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

if(arr[i]-arr[i-1]==num){

continue;

}else{

return false;

}

}

return true;

}

}

if(s.charAt(left)==s.charAt(left-1)){

con++;

max = Math.max(con,max);

}else{

max = Math.mahttp://x(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

if(arr[i]-arr[i-1]==num){

continue;

}else{

return false;

}

}

return true;

}

}

if(arr[i]-arr[i-1]==num){

continue;

}else{

return false;

}

}

return true;

}

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:springboot访问静态资源遇到的坑及解决
下一篇:详解Spring与MyBatis的整合的方法
相关文章

 发表评论

暂时没有评论,来抢沙发吧~