这轮kickstart是自己认真参加的,但是一题也没做出T T;讲道理每次的第一题是最简单的,应该可以作出,但是这次的题目,还是算法写错了,没关系,赛后复盘总结下;
Problem A : Product Triplets
https://code.google.com/codejam/contest/5374486/dashboard#s=p0&a=0
题意:
即在一个数组中找到至少满足下面三个条件之一的三元组(x,y,z)
- Ax = Ay × Az, and/or
- Ay = Ax × Az, and/or
- Az = Ax × Ay
分析:
是一道搜索题,暴力搜索O(n^3)
我的算法使用set记录,O(n^2),但是有的case没通过;错的原因应该是没有考虑清楚重复的情况,比如数值相同,但下标不同,也算不同的三元组的情况;
另外我没想到可以先排序;
解法:
因为会存在重复的数,那么可以使用map来记录重复的数,可以把时间复杂度降低到o(n^2)
伪代码: