Huawei ODマシンテスト:アリババがゴールドを探している(III)(Javaソースコード)

アリババは金を探しています (III)

タイトル説明
貧しい脊椎動物のアリババは、薪割りの途中で偶然盗賊団の宝物庫を発見するが、その宝物庫には0からNまでの番号が振られた箱があり、それぞれの箱には番号が付けられている。アリババは呪文番号を読み取って、宝箱の中に 2 つの異なる箱があり、2 つの箱の番号が同じであり、2 つの箱の番号の差の絶対値が以下であるかどうかを確認します。スペル番号
は、ペアの宝箱が存在する場合は、最初に見つかったペアの宝箱の左の宝箱の番号を返し、存在しない場合は-1を返します

説明を入力してください

  1. 最初の行にカンマで区切って数字の文字列を入力します。例: 1,2.3,1
  2. 文字列内の数値の数>=1、<=100000、各数値値>=-100000、<=100000。
  3. 2 行目に呪文番号を入力します。例: 3、呪文番号 >=1、<=100000

出力説明
このような宝箱のペアが存在します。最初に見つかった宝箱のペアの左の宝箱の番号を返します。そうでない場合は、-1 を返します。

入力 6,3,1,6
3
出力 1
説明する なし
入力 5,6,7,5,6,7
2
出力 0
説明する なし

トピック分析

  1. ユースケースには問題があるはずです。ユースケース 1 は 0 を返し、ユースケース 2 は -1 を返す必要があります。
  2. コード全体を見ると、問題を解決するという考え方は非常にシンプルです
import java.util.Scanner;

public class T65 {
    
    
	public static void main(String[] args) {
    
    
		Scanner sc = new Scanner(System.in);
		String input = sc.nextLine();
		String strArr[] = input.split(",");
		int nums[] = new int[strArr.length];
		for (int i = 0; i < strArr.length; i++) {
    
    
			nums[i] = Integer.parseInt(strArr[i]);
		}
		int objNum = sc.nextInt();
		for (int left = 0; left < nums.length; left++) {
    
    
			for (int right = 0; right < nums.length; right++) {
    
    
				if (left == right)
					continue;
				if (nums[left] != nums[right])
					continue;
				if (Math.abs(right - left) > objNum)
					continue;
				System.out.println(left);
				System.exit(0);
				break;
			}
		}
		System.out.println(-1);
	}
}

コードの実行例
ここに画像の説明を挿入
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/qq_33183456/article/details/131320919