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

珠海网站建设百度app下载官方免费最新版

珠海网站建设,百度app下载官方免费最新版,wordpress调用分类链接,深圳集团网站建设哪家好Problem: 剑指 Offer 57. 和为s的两个数字 文章目录 题目解析算法思路分析复杂度Code 题目解析 首先来讲解一下本题的思路 我们看到本题的意思很简单,就是去这个nums这个数组中进行寻找,如果找到了两个数相加之和为target的话,那构成一个结果…

在这里插入图片描述

Problem: 剑指 Offer 57. 和为s的两个数字

文章目录

  • 题目解析
  • 算法思路分析
  • 复杂度
  • Code

题目解析

首先来讲解一下本题的思路

  • 我们看到本题的意思很简单,就是去这个nums这个数组中进行寻找,如果找到了两个数相加之和为target的话,那构成一个结果集并返回

1.jpg

算法思路分析

接下去我们来分析一下本题的思路

  1. 暴力解法
  • 首先第一种,我们都会想到的就是【暴力求解】,那就是使用两层for循环,去一一地做匹配工作,不过这种解法我们可想而知,一定会超时,所以这里不做过多的叙述
for(int i = 0;i < nums.size(); ++i)for(int j = i + 1;j < nums.size(); ++j)

2.jpg

  1. 利用单调性,使用双指针算法进行求解
  • 我们的话主要还是利用双指针的这种解法去解决本题,一个left指针指向最左端,一个right指针指向最右端,通过前后遍历去寻找哪两个数可以构成结果为【target】

3.jpg

  • 这里会出现三种情况,首先是第一种,若是我们碰到了nums[left] + nums[right] < target,那此时我们就可以去做一个取巧的工作
  • 读者可以再去仔细地阅读一下本题的题目意思,便可以知道这个数组序列是呈现递增排列的,那么既然【2】和最大的【21】都比target要来得小了,和【21】前面的这个几个数就要来得更小了,此时我们无需再去多次一举进行比较。此时只需执行left++

4.jpg

  • 接下去我们再来考虑一下这个nums[left] + nums[right] > target的情况,那我们知道这种情况也是不符合的,但是呢再去进行判断的时候我们还可以做进一步的简化
  • 读者可以先行思考一下,此时我们应该排除掉哪个数字呢?那很明显就是这个【21】,为什么呢?想一下这个【21】和最小的【11】都会超过target了,那么其余的【15】和【19】岂不是更加会超过了?
  • 所以呢这个【21】我们应该将其舍去才对,对应到代码即为right--

5.jpg

  • 那最后这一种的话就是找到了的情况,此时我们只需返回这两个数据的结果集的即可

6.jpg

复杂度

  • 时间复杂度:

考虑到最坏的情况,即为我们在遍历寻找的时候两个左右指针相遇了,即为没找到,那也就是把这个序列遍历了一遍,其时间复杂度 O ( n ) O(n) O(n)

  • 空间复杂度:

没有开辟任何额外的空间,所以空间复杂度为 O ( 1 ) O(1) O(1)

Code

以下是代码展示

  • 这里的话讲一下和这个{nums[left], nums[right]},可能有的小伙伴不是很清楚,此属于 C++初始化列表 的相关知识
  • 一般我们在LeetCode中返回两个数的集合时无需再去创建新的vector集合,而是会通过隐式类型转换构成一个vector集合进行返回
class Solution {
public:vector<int> twoSum(vector<int>& nums, int target) {int left = 0, right = nums.size() - 1;int sum = 0;while(left < right){sum = 0;sum = nums[left] + nums[right];if(sum < target){left++;}else if(sum > target){right--;}else{return {nums[left], nums[right]};}}return {-1, -1};}
};

在这里插入图片描述

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

相关文章:

  • 怎么样自己做百度网站模板自助建站
  • 昆明做网站多少钱最好网站制作工具
  • 用lls建设一个网站部队门户网站建设方案
  • 温州网站建设优化公司网页效果图设计教程
  • 网站密码忘记了怎么办咸阳seo优化
  • 个人在网站怎么做网站服务器建立
  • 手机网站开发者工具计算机前端培训
  • 汽车网站建设论坛莒县住房和建设局网站
  • 杭州app网站设计可免费下载的简历模板
  • 网站开发工程师asp考试试题免费分类信息网站大全
  • 手机制作最简单钓鱼网站在线免费源码资源源码站
  • 已认证网站服务费怎么做提交网站入口
  • 实物黄金哪个网站做的好wordpress代码块插件
  • 运城市盐湖区姚孟精诚网站开发中心wordpress英文版下载
  • 北京网站建设公司艺唯思优秀的网站举例
  • 项目建设全过程自动优化网站建设咨询
  • 吉安市建设局施工管理站网站公司网站建设代理怎么做
  • 龙岗附近做网站公司哪家好附近的代理记账公司有哪些
  • 境外网站icp备案我用帝国做的网站上传到别一个服务器上重新邦了一个域名
  • 网站开发网站开发重庆永川微网站建设
  • 网站内容设置优秀包装设计网站
  • 静态网页制作期末试卷及答案刷关键词优化排名
  • 做网站技术seo排名系统
  • 网站是怎么建成的郑州网站建设公司 艾特
  • 湘潭网站建设 水平磐石网络网站选项卡图标
  • 提升网站建设品质公司组网
  • 刷网站流量有用吗网站建设费用计什么科目
  • 济南高新区 网站建设wordpress视频多集播放
  • 做机网站深圳地铁建设集团网站
  • 招商外包公司哪家比较好宁波谷歌seo