一、暴力法遍历
class Solution:
def findSolution(self, customfunction: 'CustomFunction', z: int) -> List[List[int]]:
res = []
f = customfunction.f
for x in range(1, z + 1):
for y in range(1, z + 1):
if f(x, y) == z:
res.append([x, y])
elif f(x, y) > z:
break
return res
不断的匹配x和y,满足f(x, y)的条件
二、双指针法
class Solution:
def findSolution(self, customfunction: 'CustomFunction', z: int) -> List[List[int]]:
x, y, ans = 1, 1000, []
f = customfunction.f
while x <= 1000 and y >= 1:
res = f(x, y)
if res < z:
x += 1
elif res > z:
y -= 1
elif res == z:
ans.append([x, y])
x += 1
y -= 1
return ans
内存时间少了一点,用x,y从前后两边向中间取结果。