leetcode(1) 寻找数组中多数(两个、三个、或者任意)之和为一个给定值
目录 一、 题目<两数之和> easy 1. 解题思路 1)暴力解题法 2)两遍哈希表 3)一遍哈希表 二、题目《三数之和》medium 1. 解题思路(排序+双指针) 三、题目《四数之和》medium 1.解题思路(排序+双指针) 一、 题目<两数之和> easy 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。 假设每种输入只会对应一个答案。但是,不能重复利用这个数组中同样的元素。 1. 解题思路 遍历数组元素,对于每一个元素A,寻找数组中是否含有另一个元素B使得A+B=目标值,第一个元素A肯定是需要遍历整个数组的,寻找第二个元素B的方式将决定算法的效率,如果需要一种更有效的方法来检查数组中是否存在目标元素。保持数组中的每个元素与其索引相互对应的最好方法是什么?哈希表。 1)暴力解题法 class Solution { public int[] twoSum(int[] nums, int target) { for (int i = 0; i < nums.length; i++) { for (int j = i + 1; j < nums.length; j++) { if (nums[j] == target - nums[i]) { return new int[] { i, j }; } } }