Java十大经典排序算法的实现图解
310
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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~