Ejercicio 1 de Leecode: la suma de dos números

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
Inserte la descripción de la imagen aquí
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:
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/weixin_46020391/article/details/112849060
Recomendado
Clasificación