目录
- 1. 题目
- 2. 解释
- 3. 思路
- 4. 代码
- 5. 总结
1. 题目
给定一个数组arr,返回其中的数值的差值等于k的子数组有多少个
2. 解释
略
3. 思路
直接用hashSet进行存储,查这个值加上k后的值是否在数组中
4. 代码
public class Problem01_SubvalueEqualk {public static List<List<Integer>> allPair(int[] arr, int k){HashSet<Integer> set = new HashSet<>();for(int i = 0; i < arr.length; i++){set.add(arr[i]);}List<List<Integer>> ans = new ArrayList<>();for(Integer cur : set){if(set.contains(k + cur)){ans.add(Arrays.asList(cur, k + cur));}}return ans;}public static void main(String[] args) {int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};int k = 5; System.out.println(allPair(arr, k));}
}
输出结果:
[[1, 6], [2, 7], [3, 8], [4, 9], [5, 10]]
5. 总结
so easy!!!