【HackerRank】Pairs
2014-08-15 15:52
330 查看
题目链接:Pairs
完全就是Two Sum问题的变形!Two Sum问题是要求数组中和正好等于K的两个数,这个是求数组中两个数的差正好等于K的两个数。总结其实就是“骑驴找马”的问题:即当前遍历ar[i],那么只要看数组中是否存在ar[i]+K或者ar[i]-K就可以了,还是用HashMap在O(1)的时间完成这个操作。
题目有一点没说清楚的就是元素是否有重复,从Editorial来看似乎是没有重复,不过我还是用map的value记录了数出现的频率来处理了重复。
代码如下:
完全就是Two Sum问题的变形!Two Sum问题是要求数组中和正好等于K的两个数,这个是求数组中两个数的差正好等于K的两个数。总结其实就是“骑驴找马”的问题:即当前遍历ar[i],那么只要看数组中是否存在ar[i]+K或者ar[i]-K就可以了,还是用HashMap在O(1)的时间完成这个操作。
题目有一点没说清楚的就是元素是否有重复,从Editorial来看似乎是没有重复,不过我还是用map的value记录了数出现的频率来处理了重复。
代码如下:
import java.util.*; public class Solution { public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nextInt(); int k = in.nextInt(); HashMap<Integer, Integer> map = new HashMap<Integer,Integer>(); int[] ar = new int ; for(int i = 0;i < n;i ++){ ar[i] = in.nextInt(); if(!map.containsKey(ar[i])) map.put(ar[i], 0); map.put(ar[i], map.get(ar[i])+1); } int answer = 0; for(int i = 0;i < n;i ++){ int up = ar[i]+k; if(map.containsKey(up)) answer += map.get(up); int down = ar[i]-k; if(map.containsKey(down)) answer += map.get(down); } System.out.println(answer/2); } }
相关文章推荐
- D - Satisfactory Pairs HackerRank - pairs-again
- [HackerRank-pairs-again] Satisfactory Pairs
- Satisfactory Pairs HackerRank - pairs-again
- HackerRank Algorithms-Search-Pairs 数组的固定差对数
- Satisfactory Pairs HackerRank - pairs-again——预处理+不定长数组应用
- HackerRank - pairs-again(暴力+预处理)
- Satisfactory Pairs (HackerRank pairs-again)
- D - Satisfactory Pairs HackerRank - pairs-again(查找因数组合题目)
- 【数学思维 && ax + by = n 给你n让你求有多少对(a,b) a<b 满足方程其中x,y是正整数】HackerRank Satisfactory Pairs
- [HackerRank 101 Hack 42]Array Pairs
- hackerrank University CodeSprint玩耍记
- 【Hacker Rank】04.Arithmetic Operators
- 【hackerrank】Week of Code 26
- Hackerrank Hard Homework
- Python HackerRank|Collections.namedtuple(from collections import namedtuple)
- Python HackerRank|Word Order(OrderedCounter)(from collections import Counter, OrderedDict)
- Hackerrank University CodeSprint 2 Querying Sums on Strings
- [HackerRank Week of Code]Jogging Cats/[JZOJ5037]轮回
- [JZOJ5126]棋盘/[HackerRank-HourRank12]Jumping Rooks
- hackerrank DefaultDict Tutorial