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

临海知名营销型网站建设地址深圳网站策划

临海知名营销型网站建设地址,深圳网站策划,南昌做网站的公司哪个比较好的,泰安网站seo推广题目 输入一个递增排序的数组和一个值k,请问如何在数组中找出两个和为k的数字并返回它们的下标?假设数组中存在且只存在一对符合条件的数字,同时一个数字不能使用两次。例如,输入数组[1,2,4,6&…

题目

输入一个递增排序的数组和一个值k,请问如何在数组中找出两个和为k的数字并返回它们的下标?假设数组中存在且只存在一对符合条件的数字,同时一个数字不能使用两次。例如,输入数组[1,2,4,6,10],k的值为8,数组中的数字2与6的和为8,它们的下标分别为1与3。

分析

存在时间复杂度是O(n)、空间复杂度是O(1)的解法。我们用两个指针P1和P2分别指向数组中的两个数字。指针P1初始化指向数组的第1个(下标为0)数字,指针P2初始化指向数组的最后一个数字。如果指针P1和P2指向的两个数字之和等于输入的k,那么就找到了符合条件的两个数字。如果指针P1和P2指向的两个数字之和小于k,那么我们希望两个数字的和再大一点。由于数组已经排好序,因此可以考虑把指针P1向右移动。因为在排序数组中右边的数字要大一些,所以两个数字的和也要大一些,这样就有可能等于输入的数字k。同样,当两个数字的和大于输入的数字k时,可以把指针P2向左移动,因为在排序数组中左边的数字要小一些。

public class Test {public static void main(String[] args) {int[] nums = {1, 2, 4, 6, 10};int[] result = towSum(nums, 8);for (int res : result) {System.out.println(res);}}public static int[] towSum(int[] numbers, int target) {int i = 0;int j = numbers.length - 1;while (i < j && numbers[i] + numbers[j] != target) {if (numbers[i] + numbers[j] < target) {i++;}else {j--;}}return new int[] {i, j};}
}
http://www.yayakq.cn/news/733941/

相关文章:

  • 网站开发 ip6嘉兴模板建站代理
  • 天津企业模板建站做网站公司报价
  • 如何给网站刷流量推荐一个seo优化软件
  • 机械产品做哪个网站网站上线需要哪些步骤
  • 网站建设以及网页设计需要会什么长沙制作公园仿竹围栏报价
  • 淮阳住房和城乡建设局网站培训网站开发公司
  • 湛江市住房建设局网站专业网站建设软件开发
  • 广州小型企业网站建设网站开发g
  • 大连龙采做网站行不行拼客多网站多少钱可以做
  • 昆明建网站电话邢台网站建设设计制作
  • 青岛网站建设找正信做网页专题 应该关注哪些网站
  • 有可以免费建网站的吗百度图片点击变网站是怎么做的
  • 深圳市推广网站的公司一个人如何做跨境电商
  • 专业做物业网站的公司吗wordpress301跳转插件
  • 网站建设代理推广徽信xiala5效果好wordpress sae 主题
  • 个人网站 百度推广m8 wordpress主题
  • 济南网站app开发网站策划书包括哪些内容?
  • 初中电脑做网站的软件网站照片要求
  • 城阳建网站网站建设方面书籍
  • 企业网站asp源代码chinacd.wordpress
  • 做微整去那个网站找好的医院简约个人博客html代码
  • 表白网站制作模板中国移动手机支付网站
  • 三大门户网站商城网站设计定制
  • 哪有做网站的 优帮云垂直类网站怎么做推广
  • 网站源码区别怎样开网上商城
  • 网站分页代码wordpress官网中文
  • 网站怎样建设才叫人性化网站总体规划设计说明
  • 做单页购物网站用什么好有名的外贸公司
  • 低成本网站制作做网站开发使用百分比的好处
  • 彩票网站我想自己做关于动物的网站建设策划书