题目
1 | 1814. 统计一个数组中好对子的数目 |
思路
这道题没想到是哈希表,还以为是双指针。
做了很久,没想到解法,就直接看题解了,也看的半懂。
总之就是,好对子其实就是 两个 i - res(i) 相同的数字!
文字游戏的感觉:
42 + rev(97) = 42 + 79 = 121, 97 + rev(42) = 97 + 24 = 121 。
不就是 42-res(42) == 97 - res(97) 吗?
当*cnt[i-res(i)]*不存在时,会返回0.
ans += cnt[i-j]
因此在cnt[i-j]有2次值的时候才会返回到ans中
因为cnt[i-j]=1时,是不会经过ans赋值的
cnt[i-j] += 1
解法:
·元素为numsW - rev(num[il)
·计算每个元素出现次数
·计算每个次数等差数列和
@懒人
代码如下:
1 | class Solution: |