当前位置: 首页 > news >正文

湖州网站做等保费用上海搜索seo

湖州网站做等保费用,上海搜索seo,合肥seo外包平台,wordpress为什么不能显示域名LeetCode-1237. 找出给定方程的正整数解【双指针&#xff0c;二分查找】题目描述&#xff1a;解题思路一&#xff1a;双指针。首先我们不管f是什么&#xff0c;即function_id等于什么不管。但是我们可以调用customfunction中的f函数&#xff0c;然后我们遍历x,y(1 < x, y &l…

LeetCode-1237. 找出给定方程的正整数解【双指针,二分查找】

  • 题目描述:
  • 解题思路一:双指针。首先我们不管f是什么,即function_id等于什么不管。但是我们可以调用customfunction中的f函数,然后我们遍历x,y(1 <= x, y <= 1000)只要f(x,y)=z的(x,y)即是我们需要的答案。然后我们从x=1与y=1000开始遍历。此时有三种情况:
  • 解题思路二:二分查找。枚举x,二分查找y。找到之后x增大因为f对x,y递增故之后的y必小于middle。即f(x,middle)=z若要f(x+1,y)=z那么y必小于middle;对右边界的优化。
  • 解题思路三:0

题目描述:

给你一个函数 f(x, y) 和一个目标结果 z,函数公式未知,请你计算方程 f(x,y) == z 所有可能的正整数 数对 x 和 y。满足条件的结果数对可以按任意顺序返回。

尽管函数的具体式子未知,但它是单调递增函数,也就是说:

f(x, y) < f(x + 1, y)
f(x, y) < f(x, y + 1)
函数接口定义如下:

interface CustomFunction {
public:
// Returns some positive integer f(x, y) for two positive integers x and y based on a formula.
int f(int x, int y);
};
你的解决方案将按如下规则进行评判:

判题程序有一个由 CustomFunction 的 9 种实现组成的列表,以及一种为特定的 z 生成所有有效数对的答案的方法。
判题程序接受两个输入:function_id(决定使用哪种实现测试你的代码)以及目标结果 z 。
判题程序将会调用你实现的 findSolution 并将你的结果与答案进行比较。
如果你的结果与答案相符,那么解决方案将被视作正确答案,即 Accepted 。

示例 1:

输入:function_id = 1, z = 5
输出:[[1,4],[2,3],[3,2],[4,1]]
解释:function_id = 1 暗含的函数式子为 f(x, y) = x + y
以下 x 和 y 满足 f(x, y) 等于 5:
x=1, y=4 -> f(1, 4) = 1 + 4 = 5
x=2, y=3 -> f(2, 3) = 2 + 3 = 5
x=3, y=2 -> f(3, 2) = 3 + 2 = 5
x=4, y=1 -> f(4, 1) = 4 + 1 = 5

示例 2:

输入:function_id = 2, z = 5
输出:[[1,5],[5,1]]
解释:function_id = 2 暗含的函数式子为 f(x, y) = x * y
以下 x 和 y 满足 f(x, y) 等于 5:
x=1, y=5 -> f(1, 5) = 1 * 5 = 5
x=5, y=1 -> f(5, 1) = 5 * 1 = 5

提示:

1 <= function_id <= 9
1 <= z <= 100
题目保证 f(x, y) == z 的解处于 1 <= x, y <= 1000 的范围内。
在 1 <= x, y <= 1000 的前提下,题目保证 f(x, y) 是一个 32 位有符号整数。

解题思路一:双指针。首先我们不管f是什么,即function_id等于什么不管。但是我们可以调用customfunction中的f函数,然后我们遍历x,y(1 <= x, y <= 1000)只要f(x,y)=z的(x,y)即是我们需要的答案。然后我们从x=1与y=1000开始遍历。此时有三种情况:

  • 情况一:f(x,y)>z,那么固定y,继续增大x,函数值也会继续增大。显然不符合题意。故将y减1缩小答案。
  • 情况二:f(x,y)<z,那么固定y,继续增大x,函数值也会继续增大。显然是符合题意的。故将x加1增大答案。
  • 情况三:f(x,y)=z,先将(x,y)加入答案,然后固定y,继续增大x,函数值也会继续增大。显然是不符合题意的。故将y减1缩小答案。(类似情况一)
/** // This is the custom function interface.* // You should not implement it, or speculate about its implementation* class CustomFunction {* public:*     // 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)*     int f(int x, int y);* };*/class Solution {
public:vector<vector<int>> findSolution(CustomFunction& customfunction, int z) {vector<vector<int>> ans;int x=1,y=1000;while(x<=1000&&y>=1){int t=customfunction.f(x,y);if(t>z) --y;else if(t<z) ++x;else ans.push_back({x++,y--});}return ans;        }
};

时间复杂度:O(2C)//C=1000
空间复杂度:O(1)

解题思路二:二分查找。枚举x,二分查找y。找到之后x增大因为f对x,y递增故之后的y必小于middle。即f(x,middle)=z若要f(x+1,y)=z那么y必小于middle;对右边界的优化。

/** // This is the custom function interface.* // You should not implement it, or speculate about its implementation* class CustomFunction {* public:*     // 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)*     int f(int x, int y);* };*/class Solution {
public:vector<vector<int>> findSolution(CustomFunction& customfunction, int z) {vector<vector<int>> res;int left = 1, right = 1000;//右边界right会不断缩小for(int x=1;x<=1000;x++) {//枚举x,二分查找yleft = 1;//每次左边界left从1开始while(left<=right) {int middle=(left+right)/2;int t=customfunction.f(x, middle);if(t==z){res.push_back({x, middle});right=middle-1;//缩小右边界break;//break之后x增大因为f对x,y递增故之后的y必小于middle。即f(x,middle)=z若要f(x+1,y)=z那么y必小于middle;}else if(t<z) left=middle + 1;else right=middle-1;//缩小右边界}//其实发现 right == 0 了可以直接返回}return res;}
};

时间复杂度:O(C+logC)//C=1000
空间复杂度:O(1)

解题思路三:0


http://www.yayakq.cn/news/413719/

相关文章:

  • 电子商务网站建设步骤有什么wordpress工作室模版
  • 公司如何建立微网站做网站联系我们在那个板块里面
  • 西宁网站运营公司wordpress下单系统
  • 自己编程做网站深圳设计网站有限公司
  • vs2010网站建设有哪些摄影网站
  • 美丽南方的网站建设校园网站建设的意义
  • 个人备案网站做什么个人网站前置审批项
  • spring mvc 做网站有经验的郑州网站建设
  • 怎样用百度做网站优化怎么用wordpress写文章
  • 网站电子商务平台建设购物网站国外
  • vs2019怎么创建网站wordpress如何添加栏目
  • 手机上可以创建网站吗文山做网站
  • 平江网站设计多少钱wordpress移动端投放广告
  • 为什么做网站需要服务器wordpress wp_print_scripts
  • c 做网站怎么显示歌词wordpress 赞赏
  • 网站开发成本软件定制网站建设
  • wp网站系统模板下载flash网站
  • 建设银行个人网站显示不了哈尔滨住房城乡建设局网站首页
  • 中铁建设工程项目公示网站百度网盘电脑版官网
  • 现在ps做网站的尺寸二级域名如何绑定网站
  • 广东网站建设公司电话有什么网站可以做问卷调查
  • 关于网站建设的小故事最新网站网址永久发布
  • 最有性价比的网站建设freenom免费域名注册不了
  • asp net网站开发网站友情链接自动上链
  • 黑龙江省建设厅网站wordpress将首页转成html
  • 知名做网站想做代理怎么找商家
  • 网站建设后期收什么费用宁波网站推广怎么做
  • 视频网站搭建源码百度不收录网站描述
  • 贵阳哪些公司建网站做调查问卷哪个网站好
  • 西乡做网站费用深圳和海枫建设集团有限公司网站