【剑指offer】-和为S的两个数-38/67

简介: 【剑指offer】-和为S的两个数-38/67

1. 题目描述

输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。

2. 题目分析

  1. 使用双指针法,分别指向开头和结尾
  2. 如果:if (array[left] + array[right] > sum)right--;
  3. 如果:array[left] + array[right] < sumleft++;

3. 题目代码

public ArrayList<Integer> FindNumbersWithSum(int[] array, int sum) {
    ArrayList<Integer> list = new ArrayList<>();
    int left = 0;
    int right = array.length - 1;
    while (left < right) {
      if (array[left] + array[right] == sum) {
        list.add(array[left]);
        list.add(array[right]);
        return list;
      } else if (array[left] + array[right] > sum) {
        right--;
      } else {
        left++;
      }
    }
    return list;
  }


相关文章
|
存储 监控 安全
实时记录和查看Apache 日志
Apache 是一个开源、跨平台的 Web 服务器,保护其平台需监控活动和事件。Apache 日志分为访问日志和错误日志,分别记录用户请求和服务器错误信息。EventLog Analyzer 是一款强大的日志查看工具,提供集中收集、分析、实时警报和安全监控功能,帮助管理员识别趋势、检测威胁并确保合规性。通过直观的仪表板和自动化响应,它简化了大规模日志管理,增强了 Apache 服务器的安全性和性能。
335 5
|
消息中间件 API 开发工具
云速搭助力用友 BIP 平台快速接入阿里云产品
通过与阿里云合作,用友 BIP 集成了多款云产品,实现了快速集成、稳定可靠的一体化解决方案,显著提升了企业资源管理效率和业务灵活性。
329 104
|
人工智能 数据可视化 测试技术
深度体验通义灵码2.0 AI 程序员
深度体验通义灵码2.0 AI 程序员
|
C语言
【C语言】条件运算符详解 - 《 A ? B : C 》
条件运算符(也称为三元运算符)是C语言中唯一的三元运算符。它通常用于替代简单的 `if-else` 语句。
1299 6
|
存储 文件存储
4. 通讯录实现的需求分析和架构设计
4. 通讯录实现的需求分析和架构设计
439 0
|
C#
C#中的overload,overwrite,override的语义区别
以上概念是面向对象编程中实现多态性和继承的重要基石。理解它们之间的区别对于编写清晰、可维护的代码至关重要。
657 7
|
缓存 边缘计算 网络协议
CDN 分发系统的架构
【8月更文挑战第8天】
|
网络协议 网络安全 Python
Python 通过UDP传输超过64k的信息
Python 通过UDP传输超过64k的信息
297 0
|
存储 Kubernetes 数据安全/隐私保护
k8s对接ceph集群的分布式文件系统CephFS
文章介绍了如何在Kubernetes集群中使用CephFS作为持久化存储,包括通过secretFile和secretRef两种方式进行认证和配置。
713 5
|
消息中间件 存储 RocketMQ
【RocketMQ系列十】RocketMQ的核心概念说明
【RocketMQ系列十】RocketMQ的核心概念说明
475 1