当前位置: 代码迷 >> 综合 >> leetcode — 1237. 找出给定方程的正整数解
  详细解决方案

leetcode — 1237. 找出给定方程的正整数解

热度:34   发布时间:2024-02-21 20:50:22.0

一、暴力法遍历

class Solution:def findSolution(self, customfunction: 'CustomFunction', z: int) -> List[List[int]]:res = []f = customfunction.ffor 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:breakreturn 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.fwhile x <= 1000 and y >= 1:res = f(x, y)if res < z:x += 1elif res > z:y -= 1elif res == z:ans.append([x, y])x += 1y -= 1return ans

内存时间少了一点,用x,y从前后两边向中间取结果。