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

自己可以进行网站建设吗希爱力的作用与功效

自己可以进行网站建设吗,希爱力的作用与功效,南山区网站建设公司,衣联网和一起做网站 哪家强本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章…

本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章中,我不仅会讲解多种解题思路及其优化,还会用多种编程语言实现题解,涉及到通用解法时更将归纳总结出相应的算法模板。

为了方便在PC上运行调试、分享代码文件,我还建立了相关的仓库。在这一仓库中,你不仅可以看到LeetCode原题链接、题解代码、题解文章链接、同类题目归纳、通用解法总结等,还可以看到原题出现频率和相关企业等重要信息。如果有其他优选题解,还可以一同分享给他人。

由于本系列文章的内容随时可能发生更新变动,欢迎关注和收藏征服LeetCode系列文章目录一文以作备忘。

Given a callable function f(x, y) with a hidden formula and a value z, reverse engineer the formula and return all positive integer pairs x and y where f(x,y) == z. You may return the pairs in any order.

While the exact formula is hidden, the function is monotonically increasing, i.e.:

  • f(x, y) < f(x + 1, y)
  • f(x, y) < f(x, y + 1)

The function interface is defined like this:

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);
};

We will judge your solution as follows:

  • The judge has a list of 9 hidden implementations of CustomFunction, along with a way to generate an answer key of all valid pairs for a specific z.
  • The judge will receive two inputs: a function_id (to determine which implementation to test your code with), and the target z.
  • The judge will call your findSolution and compare your results with the answer key.
  • If your results match the answer key, your solution will be Accepted.

题意:给你一个函数  f(x, y) 和一个目标结果 z,函数公式未知,计算方程 f(x,y) == z 所有可能的正整数 数对 xy。满足条件的结果数对可以按任意顺序返回。尽管函数的具体式子未知,但它是单调递增函数,也就是说:

  • f(x, y) < f(x + 1, y)
  • f(x, y) < f(x, y + 1)

解法1 双重循环

由于数据不大,可以直接暴力循环。

  • 时间复杂度:O(n2)O(n^2)O(n2)
  • 空间复杂度:O(1)O(1)O(1)
class Solution {
public:vector<vector<int>> findSolution(CustomFunction& customfunction, int z) {vector<vector<int>> ans;for (int x = 1; x <= 1000; ++x) {for (int y = 1; y <= 1000; ++y) {if (customfunction.f(x, y) == z) ans.push_back({x, y});}}return ans;}
};

解法2 二分

类似LeetCode 15 三数之和,循环遍历 xxx ,然后对单调递增的 yyy 进行二分搜索。

  • 时间复杂度:O(nlog⁡n)O(n\log n)O(nlogn)
  • 空间复杂度:O(1)O(1)O(1)
class Solution {
public:vector<vector<int>> findSolution(CustomFunction& customfunction, int z) {vector<vector<int>> ans;for (int x = 1; x <= 1000; ++x) {int yl = 1, yh = 1000;while (yl <= yh) {int mid = (yl + yh) / 2, tz = customfunction.f(x, mid);if (tz == z) {ans.push_back({x, mid});break;} else if (tz > z) yh = mid - 1; // 说明y太大了else yl = mid + 1;}}return ans;}
};

解法3 抽象BST

官解告诉我们这是240题搜索二维矩阵II的变形题,如果题目读不懂,不妨看看本题前身240题搜索二维矩阵II是一道怎样的题目——这道题的题目含义就非常清晰了。最关键的信息在于,对于给定的 m×nm \times nm×n 矩阵 matrix ,存在以下性质:

  • 每行的元素从左到右升序排列
  • 每列的元素从上到下升序排列

用数学语言来表达的话,就是对于下标为 (x,y)(x, y)(x,y) 的元素 matrix[x][y]matrix[x][y]matrix[x][y] ,(在不越界的情况下)一定存在以下两个关系:

  • matrix[x][y]<matrix[x][y+1]matrix[x][y] < matrix[x][y+1]matrix[x][y]<matrix[x][y+1]即同一行的元素从左往右单调递增
  • matrix[x][y]<matrix[x+1][y]matrix[x][y] < matrix[x+1][y]matrix[x][y]<matrix[x+1][y]即同一列的元素从上往下单调递增
    img|400
    我们对240题的搜索过程如下所示:
    img|500
    如果我们把整个矩阵 matrix 看作是一棵二叉树,每一个值都是一个节点,把起始点 (0,n−1)(0, n-1)(0,n1) 看作根节点,左边的值看作是左节点,下面的值看作是右节点,那么这个二维矩阵可以抽象成一颗二叉搜索树BST。我们的搜寻过程,其实也遵循BST的搜索原则

从而对于本题,我们也可以这么做:

  1. 把解也就是 xy 类似上图一样,看做一个二维矩阵,高宽均是1000(取值范围)
  2. 从二维数组右上角开始,即 x=1,y=1000x = 1, y = 1000x=1,y=1000 为起始点,将这个起始点看为二叉搜索树的根节点
  3. 由于函数方程具有单调性,也就是任一点向左 (y−1)(y - 1)(y1) 结果递减,任一点向下 (x+1)(x+1)(x+1) 结果递增
  4. 从起始点来看,向左对应二叉搜索树的左子结点,向下对应二叉搜索树的右子结点
  5. 从起始点逐个得到当前 xxxyyy 的方程结果,比目标值大则向左移动,比目标值小则向下移动
  6. 特别处理:如果已经找到了当前方程的解之一,怎么移动都可以,往左或往下或往左下都行。

完整代码如下所示:

  • 时间复杂度:O(n)O(n)O(n)
  • 空间复杂度:O(1)O(1)O(1)
class Solution {
public:vector<vector<int>> findSolution(CustomFunction& customfunction, int z) {vector<vector<int>> ans;int x = 1, y = 1000; // x向右,f=(x,y)递增,y向下,f(x,y)递减while (x <= 1000 && y >= 1) {int tz = customfunction.f(x, y);if (tz == z) { // x,y合适ans.push_back({x, y});++x; // 或者--y} else if (tz < z) ++x; // tz太小,增加x以增加tzelse --y; // tz太大,减少y以减少tz}return ans;}
};
http://www.dinnco.com/news/86026.html

相关文章:

  • 做网站需要ps吗百度网盘资源搜索引擎
  • 平面网站模版谷歌seo是指什么意思
  • 网站建设及推广图片深圳百度seo怎么做
  • 上海利恩建设集团有限公司网站关键词分类工具
  • 公司网站静态模板百度服务中心人工24小时电话
  • 个人备案的域名拿来做别的网站百度搜索引擎的功能
  • 做产品网站需要注意怎么优化关键词排名优化
  • 山西有哪些做网站的公司石家庄疫情最新情况
  • 营销管理网站制作百度关键词搜索趋势
  • 在闲鱼可以做网站吗网络营销五个特点
  • wordpress 页面 评论网站的seo方案
  • 买过域名之前就可以做网站了吗?百度极速版推广员怎么申请
  • 龙南建设局网站企业网站优化工具
  • 扬中网站建设新品怎么推广效果最好
  • 网站手机站怎么做设计公司网站设计
  • 无锡 学校网站建设百度客服系统
  • 网站建设模式有哪些内容付费内容网站
  • 长春美容网站建设武汉新一轮疫情
  • 网站设计报告广州引流推广公司
  • 大什么的网站建设公司加盟培训机构
  • 公司网站建设的优化教程网
  • 企业做网站价钱建站abc官方网站
  • 网站建设服务费标准排名公式
  • 网站权重如何做创意营销新点子
  • 成都今日事件落实20条优化措施
  • 公司关键词排名优化陕西seo快速排名
  • 金华市建设技工学校教育培训网站天天网站
  • 广州番禺网站公司免费的黄冈网站代码
  • 乡村旅游网站建设的意义百度指数明星搜索排名
  • 上外国黄色网站seo上排名