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

推广网站建设个人网站模板怎么做

推广网站建设,个人网站模板怎么做,怎么优化自己的网站,单位建网站给你一个下标从 1 开始的整数数组 numbers &#xff0c;该数组已按 非递减顺序排列 &#xff0c;请你从数组中找出满足相加之和等于目标数 target 的两个数。如果设这两个数分别是 numbers[index1] 和 numbers[index2] &#xff0c;则 1 < index1 < index2 < numbers…

给你一个下标从 1 开始的整数数组 numbers ,该数组已按 非递减顺序排列  ,请你从数组中找出满足相加之和等于目标数 target 的两个数。如果设这两个数分别是 numbers[index1] 和 numbers[index2] ,则 1 <= index1 < index2 <= numbers.length 。

以长度为 2 的整数数组 [index1, index2] 的形式返回这两个整数的下标 index1 和 index2。

你可以假设每个输入 只对应唯一的答案 ,而且你 不可以 重复使用相同的元素。

你所设计的解决方案必须只使用常量级的额外空间。

 

前言


这道题可以使用「1. 两数之和」的解法,使用 O(n^2) 的时间复杂度和 O(1) 的空间复杂度暴力求解,或者借助哈希表使用 O(n) 的时间复杂度和 O(n) 的空间复杂度求解。但是这两种解法都是针对无序数组的,没有利用到输入数组有序的性质。利用输入数组有序的性质,可以得到时间复杂度和空间复杂度更优的解法。

方法一:二分查找


在数组中找到两个数,使得它们的和等于目标值,可以首先固定第一个数,然后寻找第二个数,第二个数等于目标值减去第一个数的差。利用数组的有序性质,可以通过二分查找的方法寻找第二个数。为了避免重复寻找,在寻找第二个数时,只在第一个数的右侧寻找。

//二分法查找
class Solution {public int[] twoSum(int[] numbers, int target) {for (int i = 0; i < numbers.length; ++i) {int low = i + 1, high = numbers.length - 1;while (low <= high) {int mid = (high -low) / 2 + low;if (numbers[mid] == target - numbers[i]) { //target - numbers[i]为要寻找的第二个加数值return new int[] {i + 1, mid + 1};//生成新数组返回} else if (numbers[mid] > target - numbers[i]) {high = mid - 1;} else {low = mid + 1;}}}return new int[] {-1, -1};}
}

 

复杂度分析

  • 时间复杂度:O(nlogn),其中 n 是数组的长度。需要遍历数组一次确定第一个数,时间复杂度是 O(n),寻找第二个数使用二分查找,时间复杂度是 O(logn),因此总时间复杂度是  O(nlogn)。
  • 空间复杂度:O(1)。

方法二:双指针

复杂度分析

  • 时间复杂度:O(n)O(n),其中 nn 是数组的长度。两个指针移动的总次数最多为 nn 次。

  • 空间复杂度:O(1)O(1)。

  • //双指针
    //思想:通过匹配找到两数之和,同时不断缩小范围()
    class Solution {public int[] twoSum(int[] numbers, int target) {int low = 0, high = numbers.length - 1;while (low < high) {int sum = numbers[low] + numbers[high];if (sum == target) {return new int[] {low + 1, high + 1}; //生成新数组返回}else if (sum < target) { //加数之和比目标值小,low值增大++low;} else { //加数之和比目标值大,high值减小--high;}}return new int[] {-1, -1};//找不到,就返回}
    }

http://www.15wanjia.com/news/196662.html

相关文章:

  • 西安网站seo公司建设网站需要的步骤
  • 网站建设相关新闻校园网站建设的意义
  • 外卖网站那家做的好处上海阳性增多
  • 凡客诚品网站推广网络推广文案策划
  • 制作网站参考案例上传 wordpress
  • 可用来做外链推广的网站网站项目团队介绍怎么写
  • wordpress本地网站上传wordpress栏目分类
  • 怎样查看网站是否备案网站怎么自适应屏幕大小
  • 做曖网站网站做三层结构
  • 武冈企业建站新产品营销策划
  • 安徽建工集团网站手机网站首页模板
  • 房地产网站模板库连云港百度推广总代理
  • 北京网站推广外包wordpress外链跳转过渡页插件
  • 石家庄站内换乘示意图厦门seo顾问
  • php网站如何上传数据库网站免费优化平台
  • 企业管理软件销售好做吗seo推广需要网站吗
  • 企业网站开发的功能灰系网站
  • 哈尔滨网站关键词优化排名电子商务最好的出路
  • o2o网站做推广公司网站建设原因分析
  • 网站质量需求厦门律师网站建设
  • 加强部门网站建设工作手机浏览器输入网址
  • 个人网站有哪些动画专业大学排名前十强
  • 网站是什么时候出现的电子烟网站建设
  • 音乐网站开发工具浙江网站建设商城价格
  • 网站备案抽查通过网站设计论文的题目
  • 专门卖电子产品的网站公司网站简介怎么做
  • 网站的首页设计电子商务网站建设的流程图
  • 酷炫html5网站网站建设用户量分析
  • 做网站哪个平台好江西网
  • 个人网站制作体会公司电子商务网站建设策划书