Ejercicio 1 de Leecode: la suma de dos números
Pregunta original:
Dado un número de matriz de enteros y un objetivo de valor de destino entero, busque los dos enteros cuya suma es el valor de destino en la matriz y devuelva sus subíndices de matriz.
Puede suponer que cada entrada solo corresponderá a una respuesta. Sin embargo, el mismo elemento de la matriz no se puede utilizar dos veces.
Puede devolver las respuestas en cualquier orden.
Fuente: LeetCode (LeetCode)
Enlace: https://leetcode-cn.com/problems/two-sum
Copyright es propiedad de LeetCode . Para reimpresiones comerciales, comuníquese con la autorización oficial. Para reimpresiones no comerciales, indique la fuente.
El código pasado por 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
*/
Resultado de la operación: el
compilador leecode devuelve la matriz de esta manera para generar el resultado correcto, pero no funcionará con eclipse. Simplemente elimine return en el método y agregue una oración de salida.
el código se muestra a continuación:
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
*/
resultado: