[伯俊]二種類の溶液(ジャワ)
アルゴリズムの問題解決をブログにアップロードしたのは、コードを解答し、記録するためです.
これからは質問を吹き飛ばすよりも、リンクだけを残して、答えを見極めるために、私たちは皆さんに位置づけます!
📄 質問する
これからは質問を吹き飛ばすよりも、リンクだけを残して、答えを見極めるために、私たちは皆さんに位置づけます!
📄 質問する
[伯俊]二種類の溶液
👩💻 に答える
1.問題を理解する
この問題は,与えられた数列の2つの数を加算し,0に最も近い組合せを生成し,その組合せの数値を昇順に出力する問題である.
2.解答
二重複文ではなく、二重ポインタで簡単に解くことができます.import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
int N = Integer.parseInt(br.readLine());
int[] arr = new int[N];
st = new StringTokenizer(br.readLine(), " ");
for(int i = 0; i < N; i++) {
arr[i] = Integer.parseInt(st.nextToken());
}
//twoPointer
int p1 = 0;
int p2 = N-1;
int fit = Integer.MAX_VALUE;
String answer = “ “;
Arrays.sort(arr);
while(p1 < p2) {
int sum = arr[p1] + arr[p2];
if(Math.abs(sum) < fit) {
fit = Math.abs(sum);
answer = arr[p1] + " " + arr[p2];
}if(sum > 0) {
p2--;
}else {
p1++;
}
}
System.out.println(answer);
}
}
Reference
この問題について([伯俊]二種類の溶液(ジャワ)), 我々は、より多くの情報をここで見つけました
https://velog.io/@geesuee/백준-두-용액자바
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
1.問題を理解する
この問題は,与えられた数列の2つの数を加算し,0に最も近い組合せを生成し,その組合せの数値を昇順に出力する問題である.
2.解答
二重複文ではなく、二重ポインタで簡単に解くことができます.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
int N = Integer.parseInt(br.readLine());
int[] arr = new int[N];
st = new StringTokenizer(br.readLine(), " ");
for(int i = 0; i < N; i++) {
arr[i] = Integer.parseInt(st.nextToken());
}
//twoPointer
int p1 = 0;
int p2 = N-1;
int fit = Integer.MAX_VALUE;
String answer = “ “;
Arrays.sort(arr);
while(p1 < p2) {
int sum = arr[p1] + arr[p2];
if(Math.abs(sum) < fit) {
fit = Math.abs(sum);
answer = arr[p1] + " " + arr[p2];
}if(sum > 0) {
p2--;
}else {
p1++;
}
}
System.out.println(answer);
}
}
Reference
この問題について([伯俊]二種類の溶液(ジャワ)), 我々は、より多くの情報をここで見つけました https://velog.io/@geesuee/백준-두-용액자바テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol