最小数を削除
🟨 私の答え:
1)処理長が1の場合、その後
2)for文で与えられた配列の中で最小のeleとeleのインデックスを検索する
3)eleインデックスを使用して、0-index index-配列の末尾にある2つの配列を作成します.
4)2つの配列を接続し,最小のeleを取り除き,新しい配列を形成する.
5)長さが1の場合を先に処理し,次に最小値を求める.
🟩 答え:
1)処理長が1の場合、その後
2)最小値を求める
3)答え配列のminindex以外のすべての値をコピーします.
1)処理長が1の場合、その後
2)for文で与えられた配列の中で最小のeleとeleのインデックスを検索する
3)eleインデックスを使用して、0-index index-配列の末尾にある2つの配列を作成します.
4)2つの配列を接続し,最小のeleを取り除き,新しい配列を形成する.
5)長さが1の場合を先に処理し,次に最小値を求める.
import java.io.*;
import java.util.*;
public static int[] solution(int[] arr) {
int[] answer = new int [arr.length];
int min = 999999;
int mindex = 0;
if(arr.length==1){
answer[0] = -1;
}else{
for(int a= 0; a < arr.length; a++){
if(arr[a]<min){ min=arr[a];mindex=a;}
}
int[] arr1 = Arrays.copyOfRange(arr, 0, mindex);
int[] arr2 = Arrays.copyOfRange(arr, mindex, arr.length-1);
answer=Arrays.copyOf(answer,answer.length-1);
System.arraycopy(arr1, 0, answer, 0, arr1.length);
System.arraycopy(arr2, 0, answer, arr1.length, arr2.length);
}
return answer;
}
正数が通ると,負数を加えると問題が発生する.🟩 答え:
1)処理長が1の場合、その後
2)最小値を求める
3)答え配列のminindex以外のすべての値をコピーします.
class Solution {
public int[] solution(int[] arr) {
if(arr.length == 1) return new int[]{-1};
int minidx = 0;
for(int i=0; i<arr.length; i++) {
if(arr[minidx] > arr[i]) {
minidx = i;
}
}
int[] answer = new int[arr.length-1];
int cnt = 0;
for(int i=0; i<arr.length; i++) {
if(i == minidx) continue;
answer[cnt++] = arr[i];
}
return answer;
}
}
**似ているように見えますが、より簡潔なコードのようです.Reference
この問題について(最小数を削除), 我々は、より多くの情報をここで見つけました https://velog.io/@annahyr/제일-작은-수-제거하기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol