Leecode演習1:2つの数値の合計
元の質問:
整数配列numsと整数ターゲット値targetが与えられた場合、合計が配列のターゲット値である2つの整数を見つけて、それらの配列添え字を返します。
各入力は1つの回答にのみ対応すると想定できます。ただし、配列内の同じ要素を2回使用することはできません。
回答は任意の順序で返すことができます。
出典:LeetCode(LeetCode)
リンク:https ://leetcode-cn.com/problems/two-sum
著作権はLeetCodeが所有しています。商用の再版については、公式の承認に連絡してください。非商用の再版については、出典を示してください。
leecodeによって渡されるコード:
import java.util.Scanner;
class Solution {
public int[] twoSum(int[] nums, int target) {
int[] m=new int[2];
for(int i=0;i<nums.length;i++){
for(int j=i+1;j<nums.length;j++){
if(nums[i]+nums[j]==target){
m[0]=i;m[1]=j;
}
}
}
return m;
}
}
public class Main{
public static void main(String[] args){
Scanner reader=new Scanner(System.in);
String s;
s=reader.next();
int k;
k=reader.nextInt();
String a[]=s.split(",");
int b[]=new int[a.length];
for(int i=0;i<a.length;i++){
b[i]=Integer.parseInt(a[i]);
}
Solution sol=new Solution();
sol.twoSum(b,k);
}
}
/*
2,7,11,15
9
*/
演算結果:
leecodeコンパイラはこの方法で配列を返し、正しい結果を出力しますが、Eclipseでは機能しません。メソッドのreturnを削除し、出力の文を追加するだけです。
コードは次のように表示されます。
import java.util.Scanner;
class Solution {
int[] m=new int[2];
public int[] twoSum(int[] nums, int target) {
for(int i=0;i<nums.length;i++){
m[0]=i;
for(int j=i+1;j<nums.length;j++){
m[1]=j;
if(nums[i]+nums[j]==target){
System.out.printf("[%d,%d]",i,j);
}
}
}
return m;
}
}
public class Main{
public static void main(String[] args){
Scanner reader=new Scanner(System.in);
String s;
s=reader.next();
int k;
k=reader.nextInt();
String a[]=s.split(",");
int b[]=new int[a.length];
for(int i=0;i<a.length;i++){
b[i]=Integer.parseInt(a[i]);
}
Solution sol=new Solution();
sol.twoSum(b,k);
}
}
/*
2,7,11,15
9
*/
結果: