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

本文探讨了如何使用二分查找法解决LeetCode题目1237,涉及固定x找y的正整数解。通过递归实现,展示了如何在定制函数中找到满足条件的整数对。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

1. 问题描述

在这里插入图片描述
在这里插入图片描述

2. 思路

二分查找
固定x,二分查找y

3. 代码

/** 
 * This is the declaration of customFunction API.
 * @param  x    int
 * @param  x    int
 * @return 	    Returns f(x, y) for any given positive integers x and y.
 *			    Note that f(x, y) is increasing with respect to both x and y.
 *              i.e. f(x, y) < f(x + 1, y), f(x, y) < f(x, y + 1)
 */

func findSolution(customFunction func(int, int) int, z int) [][]int {
    var res = make([][]int, 0)
    for x := 1; x <= z; x++ {
        left, right := 1, 1000
        for left <= right {
            mid := left + (right - left) / 2
            temp := customFunction(x, mid)
            if temp == z {
                tempRes := []int{x, mid}
                res = append(res, tempRes)
                break
            } else if temp < z {
                left = mid + 1
            } else {
                right = mid - 1
            }
        }
    } 
    return res
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值