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

免费软件下载网站入口正能量网站国外推广

免费软件下载网站入口正能量,网站国外推广,医院网站建设趋势,浏览器网站参见官方题解 一、学到的知识 正面寻找两个数之和相加等于某个数,如 ab c,不如反过来寻找 a c - b 正面寻找需要两层 for 循环,把每个数都进行遍历,所以时间复杂度较高 反过来则可以通过维护一个 a 的集合,每次通过…

参见官方题解

一、学到的知识

  1. 正面寻找两个数之和相加等于某个数,如 a+b = c,不如反过来寻找 a = c - b

    正面寻找需要两层 for 循环,把每个数都进行遍历,所以时间复杂度较高

    反过来则可以通过维护一个 a 的集合,每次通过查询 c - b 是否在集合中,判断是否存在 a = c - b

    存在,则返回答案;不存在,则将 a 插入集合中, 待下次查询

  2. 想一下,我们为什么把 a 插入集合中,而不是 c - b呢?

    如果把 c - b 插入集合,意味着我们将判断 a 是否在集合中,总之就是要判断是否存在 a = c - b,两者写法其实都可以

二、代码

  1. 版本1
    时间复杂度 O(N)
    空间复杂度 O(1)

    比较好想到的一个方法是先使用一层 for 循环枚举 a,再使用一层 for 循环枚举 b,判断 a + b == c 是否为真即可
    而且也容易想到一点优化,对于位于 x 位置的元素,1…x-1次循环的时候,nums[x]已经被匹配过,所以无需再匹配,所以在代码中,可以看到,第二层枚举 b 的循环,从 i + 1 开始

    class Solution
    {
    public:vector<int> twoSum(vector<int>& nums, int target){const int Size = nums.size();for (int i = 0; i < Size; ++i){for (int j = i + 1; j < Size; ++j){if (nums[i] + nums[j] == target){return {i, j};}}}return {0, 0};}
    };
    
  2. 版本2
    时间复杂度 O(NlogN)
    空间复杂度 O(N)

    这是版本1的优化, 前文提过,需要寻找 a + b = c,我们可以把 b 移至右侧,寻找 a = c - b,我们很自然的想到,可以维护一个数的集合,再从中寻找元素是否存在

    而这个集合的查找的复杂度,就决定了我们算法的复杂度,在代码中,我们使用了标准库中的 map,它的查找效率是 LogN

    class Solution
    {
    public:std::vector<int> twoSum(std::vector<int>& nums, int target){const int size = nums.size();map<int, int> Map;for (int i = 0; i < size; ++i){const int gap = target - nums[i];auto iterator = Map.find(gap);if (iterator != Map.end()){return {iterator->second, i};}Map.insert({nums[i], i});}return {-1, -1};}
    };
    
http://www.yayakq.cn/news/412050/

相关文章:

  • 嘉峪关住房和城乡建设局网站湛江模板做网站
  • 苏州做商城网站怎么做网站地图
  • 网站关键词排名怎么提升深圳网上招聘最好的网站
  • 网站建设在会计里算什么资产如何选择昆明网站建设
  • wordpress微信免签支付接口免费网站建设seo
  • 做的比较好的返利网站知乎优秀网页设计作品分析ppt
  • 吉林省住房和建设厅网站宝安做棋牌网站建设哪家好
  • 企业网站建设对企业的宣传作用seo培训
  • 如何建导航网站手机怎么自己制作网页
  • 外贸网站模板外贸网站建设网站更改空间
  • 广州顺德网站建设做AI免费网站
  • 网站是用什么软件做的电子商务网站管理内容
  • 网站常用的颜色赣州新闻
  • 没有网站可以做的广告联盟php网站开发权限管理
  • 整站优化网站建站程序员招聘
  • 在线做简历的网站即墨网站设计
  • 龙华app网站开发网络公司最怕怎么投诉
  • 做网站用html还是jsp购物网站 页面设计
  • 深圳宝安网站建设学习网城市介绍网站模板
  • asp网站系统开饰品店网站建设预算
  • 网站开发专业感想网上书城网站建设功能定位
  • 建网站软件最新wordpress备份用户权限
  • 淘宝网站建设特点c语言入门自学
  • 做网页怎么建站点网站开发工程师面试问题
  • 邯郸网站设计价位外贸网站建设模板
  • wordpress 门户模板下载成都网络优化公司排行榜
  • 开发网站怎样注册公司西安建网站公司哪家好
  • 网站设置仅某浏览器广告设计与制作课程
  • 做公司网站首页广州网站建设案件
  • 潍坊精神文明建设网站xyz域名