新农上路
- 积分
- 91
- 大米
- 颗
- 鳄梨
- 个
- 水井
- 尺
- 蓝莓
- 颗
- 萝卜
- 根
- 小米
- 粒
- 学分
- 个
- 注册时间
- 2018-6-28
- 最后登录
- 1970-1-1
|
这个题目我是这么看的, 因为用双层for loop 所以所有的index pair是会被强制性不重复的, 所以其实不会出现找到自己的问题,只要hashmap里面有过就在计数上加1.
对于重复值的问题,我觉得我这种做法也是可以应用的, 因为 即便是重复的值,但是index不同还是要算为不同的组合的。 如果楼主觉得我的看法有错误,还恳请指出,谢谢。
- int findTuple(vector<int> nums)
- {
- if (nums.size() < 4) return {};
- unordered_map<int, vector<int>> map;
- int count = 0;
- for (int i = 0; i < nums.size()-1; ++i)
- {
- for (int j = i + 1; j < nums.size(); ++j)
- {
- int sum = nums[i] * nums[j];
- if (map.count(sum)) count++;
- else map.insert({ sum, {i,j} });
- }
- }
- return count;
- }
复制代码 |
|