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

重庆亮哥做网站保定seo推广

重庆亮哥做网站,保定seo推广,站长工具特级a免费,微商城建设购物网站这段代码实现了在一个非递减排序的数组中找到两个数,使它们的和等于目标值的算法。算法使用了双指针技术,具体思想如下: 算法思想: 初始化指针:定义两个指针 left 和 right,分别指向数组的起始位置和末尾位…

在这里插入图片描述

这段代码实现了在一个非递减排序的数组中找到两个数,使它们的和等于目标值的算法。算法使用了双指针技术,具体思想如下:

算法思想:

  1. 初始化指针:定义两个指针 leftright,分别指向数组的起始位置和末尾位置。left 从左向右遍历,right 从右向左遍历。

  2. 计算当前和

    • 在循环中,每次计算 numbers[left]numbers[right] 的和,记为 sum
  3. 判断是否满足目标值

    • 如果 sum 等于目标值 target,则找到了符合条件的两个数,此时返回它们的索引(题目要求索引从1开始,所以要将数组下标 leftright 各加1)。
    • 如果 sum 小于目标值 target,说明需要更大一点的数才能达到目标值,因此将 left 指针向右移动一位,以增加 sum
    • 如果 sum 大于目标值 target,说明需要更小一点的数才能达到目标值,因此将 right 指针向左移动一位,以减小 sum
  4. 返回结果

    • 如果在循环结束后没有找到符合条件的两个数,返回一个空数组(虽然根据题目描述,总会有一个解,因此这一步通常不会被执行)。

时间复杂度

该算法的时间复杂度是 (O(n)),因为每次循环中指针 leftright 都会向中间移动,最多需要遍历整个数组一次。

总结

此算法利用了数组的有序性,通过双指针逐步逼近目标值,避免了暴力解法的多重循环,从而提升了效率。

java solution

class Solution {public int[] twoSum(int[] numbers, int target) {int left = 0;int right = numbers.length - 1;int sum = 0;int[] result = new int[2];while(left != right) {sum = numbers[left] + numbers[right];if(sum == target) {result[0] = left + 1;result[1] = right + 1;return result;}else if(sum < target) {left++;} else {right--;}}return new int[] {};     }
}
http://www.yayakq.cn/news/254482/

相关文章:

  • 本地主机做网站服务器seo联盟平台
  • 福州网站设计公司塘厦网站仿做
  • 学做沪江网站要多久网站的标签
  • linux 做网站龙岩新罗区建设局网站
  • 中山织树网站建设如何用dw建立网站
  • 网站做营利性广告需要什么备案个人怎么开发软件
  • 东莞网站制作建设公司万网网站空间服务范围及费用
  • 电子商务网站建设管理实训报告黄骅招聘信息最新2022
  • 做网站参考文献推广方式单一的原因
  • 阜新市建设学校官方网站大连网站建设比较好的公司
  • 网站 地图导航代码网站开发里程碑
  • 重庆游戏网站开发政务微信小程序
  • 十堰学网站建设培训班网站开发需要技术
  • 浙江省城乡住房建设部网站云南网站定制
  • 怎么修改网站排版潍坊中企动力做的网站怎么样
  • 基于django电商网站开发课设报告山西省网站建设价格
  • 请人做网站注意事项wordpress 文字插件下载
  • 响应式网站框架设计网站建设
  • 网站更新问题wordpress下載
  • 寮步网站制作企业网站优化兴田德润怎么样
  • 国家工程建设标准化信息网站元凤建盏简介
  • 一些做设计素材的网站公司网站开发费用怎么做账
  • 网站发布初期的推广应用宝下载
  • 企业网站设计要求医疗机构网站模板
  • 网站建设解决问题建立网站的条件
  • 郑州知名做网站公司wordpress文章列表添加字段
  • 唐山网站排名推广网站建立的重要性
  • 网站发布和推广网站建设需求登记表 免费下载
  • 学网站建设设计要钱吗张家港网站建设培训班
  • 电脑做网站软件通辽市网站建设