引言:
在现代软件开发领域,算法和数据结构是开发者面试中非常重要的一部分。掌握高效的算法和数据结构可以帮助开发者解决复杂的问题,并提升代码的性能和效率。本文将介绍一些最新的Java算法和数据结构面试题,并提供详细的答案和解析。
-
题目:两数之和
给定一个整数数组nums和一个目标值target,在数组中找出和为目标值的两个整数,并返回它们的索引。假设每个输入只对应唯一答案,并且不可以重复利用数组中同样的元素。
示例:
输入:nums = [2, 7, 11, 15], target = 9
输出:[0, 1]
解释:nums[0] + nums[1] = 2 + 7 = 9
解答:
public int[] twoSum(int[] nums, int target) {
Map<Integer, Integer> map = new HashMap<>();
for (int i = 0; i < nums.length; i++) {
int complement = target - nums[i];
if (map.containsKey(complement)) {
return new int[] { map.get(complement), i };
}
map.put(nums[i], i);
}
throw new IllegalArgumentException("No two sum solution");
}
</