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

税务网站建设要突出以seo咨询茂名

税务网站建设要突出以,seo咨询茂名,网站用什么格式做,晋州网站建设一、题目 来源:力扣(LeetCode) 链接:https://leetcode.cn/problems/find-positive-integer-solution-for-a-given-equation/description/ 翻译一下题目 意思是,这是一个二维单调递增的函数,函数一共有 9 …

一、题目

在这里插入图片描述
在这里插入图片描述
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/find-positive-integer-solution-for-a-given-equation/description/

翻译一下题目

意思是,这是一个二维单调递增的函数,函数一共有 9 种,我们可以直接调用 CustomFunction 这个类来使用他定义的函数。测试用例中输入的 function_id 不在我们的考虑范围内,这个 function_id 只是决定了他具体是采用了哪一种函数来进行运算。而我们要做的事情就是,找到所有满足函数等于 target 的数值对。另外建议出题人下次好好学学语文再来出题吧。

二、C++解法

我的思路及代码

枚举

因为他给出了数据的范围,所有我们可以枚举出所有的情况,然后和 target 进行比较,一样则加入答案。

class Solution {
public:vector<vector<int>> findSolution(CustomFunction& customfunction, int z) {vector<vector<int>> ans;for(int i=1;i<1000;i++){for(int j=1;j<1000;j++){if(z==customfunction.f(i,j)){ans.push_back({i,j});}}}return ans;}
};
  • 时间复杂度:O(mn),其中 m 是 x 的取值数目,n 是 y 的取值数目
  • 空间复杂度:O(1)
枚举改进

在枚举的基础上增加了提前退出循环的条件,由于该函数是单调递增,所以当 f(x,y) = target 时,f(x,y+1) > target 是一定的,所以我们可以减少很多不必要的循环。除此之外我们还可以进行改进,可以继续往下看

class Solution {
public:vector<vector<int>> findSolution(CustomFunction& customfunction, int z) {vector<vector<int>> ans;for(int i=1;i<1000;i++){for(int j=1;j<1000;j++){if(z==customfunction.f(i,j)){ans.push_back({i,j});}if(z<customfunction.f(i,j))break;}}return ans;}
};
  • 时间复杂度:O(mn),其中 m 是 x 的取值数目,n 是 y 的取值数目
  • 空间复杂度:O(1)

双指针

由于此函数单调递增,所以我们可以采用双指针,一个遍历 x 的从前往后遍历,另外一个遍历 y 的从后往前遍历,当遇到当前的函数值小于 target 时就说明此时在 x 不变的情况下,y 已经小了,所以我们将 x++ 然后还是从上次遍历停止的位置继续开始 y 的遍历。这样可以大幅度减少搜索的次数。

class Solution {
public:vector<vector<int>> findSolution(CustomFunction& customfunction, int z) {vector<vector<int>> ans;int j=1000;for(int i=1;i<1001;i++){ for(;j>0;j--){if(z==customfunction.f(i,j))ans.push_back({i,j});if(z>customfunction.f(i,j))break;}}return ans;}
};
  • 时间复杂度:O(m+n),其中 m 是 x 的取值数目,n 是 y 的取值数目
  • 空间复杂度:O(1)

官方参考代码

二分查找

题目本质是一个查找的题目,所以可以用二分查找的办法将时间复杂度降低到 nlogn 的级别

class Solution {
public:vector<vector<int>> findSolution(CustomFunction& customfunction, int z) {vector<vector<int>> res;for (int x = 1; x <= 1000; x++) {int yleft = 1, yright = 1000;while (yleft <= yright) {int ymiddle = (yleft + yright) / 2;if (customfunction.f(x, ymiddle) == z) {res.push_back({x, ymiddle});break;}if (customfunction.f(x, ymiddle) > z) {yright = ymiddle - 1;} else {yleft = ymiddle + 1;}}}return res;}
};
  • 时间复杂度:O(mlog⁡n),其中 m 是 x 的取值数目,n 是 y 的取值数目。
  • 空间复杂度:O(1)
http://www.15wanjia.com/news/40989.html

相关文章:

  • css怎么做响应式网站职业技能培训平台
  • dreamweaver怎样用框架做网站企业培训机构排名
  • 大鹏新区住房和建设局网站重庆百度seo整站优化
  • 精通网站建设 100天津seo渠道代理
  • 推广网站的论坛百度识图查图片
  • wordpress默认分类链接湖南关键词优化推荐
  • 委托广告公司做的网站违法了网店代运营骗局
  • 北京网站建站系统平台网站优化网络推广seo
  • 带产品展示的个人网站模板seo站内优化站外优化
  • 织梦网站环境免费创建属于自己的网站
  • 电影网站盗链怎么做宁波seo网络推广定制
  • 商洛做网站网店推广方案范文
  • 没有网站怎么做cps网站引流推广软件
  • 国内几个做外贸的网站成都网络营销策划
  • 网站建设平台选用及分析百度指数上多少就算热词
  • 荆楚网微信公众平台下载湘潭关键词优化公司
  • 无锡制作网站公司哪家好建网站费用
  • 怎么自己做砍价网站西安网站建设维护
  • 做玩具订制网站好处游戏代理加盟
  • 黄村网站建设价格长沙优化网站厂家
  • 如何登录建设部网站电脑版产品软文撰写
  • 苏州建设局官方网站济宁seo公司
  • 网站建设 乐清网络公司成人电脑基础培训班
  • 做游戏交易网站重庆seo结算
  • 个人怎么交养老保险免费培训seo
  • 有多少网站是做废旧信息的百度seo策略
  • 哪里有网站建设培训班高效统筹疫情防控和经济社会发展
  • 婚礼网站怎么做的项目营销推广方案
  • 海珠做网站要多少钱济南做网站公司
  • 菲律宾长沙优化网站推广