leetcode-1両数の和
カードを打つことを堅持します!
タイトル:
整数配列numsを指定 ターゲット値targetと、その配列の中でターゲット値を見つけてください. ふたつ 整数を返し、配列の下付きを返します.
入力ごとに1つの答えしか対応しないと仮定できます.しかし、この配列の同じ要素を繰り返し利用することはできません.
例:
与えられたnums=[2,7,11,15],target=9
nums[0]+nums[1]=2+7=9なので[0,1]を返します
ソース:力ボタン(LeetCode)リンク:https://leetcode-cn.com/problems/two-sum 著作権はインターネットの所有に帰属する.商業転載は公式の授権に連絡してください.非商業転載は出典を明記してください.
主な考え方:
1、配列要素を格納するコンテナを設計する
2.ターゲットと減算を行い、コンテナに差のある値の要素があるかどうかを確認します.
3、下付き文字を記録して結果を返す
4、存在しない場合は異常エラーを提示する
リファレンスコード
まとめ:
この問題はやはり簡単だ.主に、異なる値とプロシージャデータの格納を検索します.
タイトル:
整数配列numsを指定 ターゲット値targetと、その配列の中でターゲット値を見つけてください. ふたつ 整数を返し、配列の下付きを返します.
入力ごとに1つの答えしか対応しないと仮定できます.しかし、この配列の同じ要素を繰り返し利用することはできません.
例:
与えられたnums=[2,7,11,15],target=9
nums[0]+nums[1]=2+7=9なので[0,1]を返します
ソース:力ボタン(LeetCode)リンク:https://leetcode-cn.com/problems/two-sum 著作権はインターネットの所有に帰属する.商業転載は公式の授権に連絡してください.非商業転載は出典を明記してください.
主な考え方:
1、配列要素を格納するコンテナを設計する
2.ターゲットと減算を行い、コンテナに差のある値の要素があるかどうかを確認します.
3、下付き文字を記録して結果を返す
4、存在しない場合は異常エラーを提示する
リファレンスコード
import java.util.HashMap;
import java.util.Map;
/**
*
* @author SanYi
* @version 1、
*
*/
public class Test1 {
public static void main(String[] args) {
//
int[] current = { 2, 7, 23, 13 };
//
int target = 30;
//
int[] result = FindTwoSum(current, target);
System.out.println("[" + result[0] + "," + result[1] + "]");
}
/**
* @author SanYi
*
* @param nums
*
* @param target
*
* @return int[]
*
* */
public static int[] FindTwoSum(int[] nums, int target) {
//
Map map = new HashMap<>();
//
for (int i = 0; i < nums.length; i++) {
//
int tmp = target - nums[i];
//
if (map.containsKey(tmp)) {
//
return new int[] { map.get(tmp), i };
}
// ,
map.put(nums[i], i);
}
//
throw new IllegalArgumentException(" " + target + " ");
}
}
まとめ:
この問題はやはり簡単だ.主に、異なる値とプロシージャデータの格納を検索します.