【剑指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;
  }


相关文章
|
10月前
|
消息中间件 API 开发工具
云速搭助力用友 BIP 平台快速接入阿里云产品
通过与阿里云合作,用友 BIP 集成了多款云产品,实现了快速集成、稳定可靠的一体化解决方案,显著提升了企业资源管理效率和业务灵活性。
202 86
|
7月前
|
人工智能 数据可视化 测试技术
深度体验通义灵码2.0 AI 程序员
深度体验通义灵码2.0 AI 程序员
|
9月前
|
C语言
【C语言】条件运算符详解 - 《 A ? B : C 》
条件运算符(也称为三元运算符)是C语言中唯一的三元运算符。它通常用于替代简单的 `if-else` 语句。
522 6
|
C#
C#中的overload,overwrite,override的语义区别
以上概念是面向对象编程中实现多态性和继承的重要基石。理解它们之间的区别对于编写清晰、可维护的代码至关重要。
418 7
|
存储 文件存储
4. 通讯录实现的需求分析和架构设计
4. 通讯录实现的需求分析和架构设计
323 0
|
存储 缓存 算法
优化 ChunkServer 的存储性能
【8月更文第30天】在分布式文件系统中,ChunkServer 是负责存储数据块的关键组件。为了提高ChunkServer的存储性能,可以通过多种技术手段进行优化,如缓存、压缩、并行处理等。本文将详细讨论这些技术的应用,并提供具体的代码示例。
157 0
|
消息中间件 存储 RocketMQ
【RocketMQ系列十】RocketMQ的核心概念说明
【RocketMQ系列十】RocketMQ的核心概念说明
300 1
|
存储 Kubernetes 数据安全/隐私保护
k8s对接ceph集群的分布式文件系统CephFS
文章介绍了如何在Kubernetes集群中使用CephFS作为持久化存储,包括通过secretFile和secretRef两种方式进行认证和配置。
479 5
|
算法 安全 测试技术
移相全桥DC-DC变换器快速设计与开发
本篇将基于PPEC-86CA3A移相全桥数字电源控制芯片以及PPEC Workbench开发软件带领大家进行实际移相全桥DC-DC变换器的设计与开发 。 一、移相全桥变换器设计与开发 1、外围电路设计与硬件平台搭建 1)外围电路设计 这里给出了PPEC-86CA3A移相全桥数字电源控制芯片的采样、PWM驱动以及硬件保护等外围电路设计图,大家可参考下图进行外围电路搭建与连接。 2)硬件平台搭建 大家可根据前文介绍的参数设计方法进行电源拓扑的器件选型,再按照外围电路设计图搭建PWM驱动电路、采样电路以及保护电路并与电源控制核心进行连接。移相全桥DC-DC变换器的硬件测试平台如图。 2
280 2
|
机器学习/深度学习 算法 固态存储
10分钟学会使用YOLO及Opencv实现目标检测(下)|附源码
本文介绍使用opencv和yolo完成视频流目标检测,代码解释详细,附源码,上手快。
9344 1

热门文章

最新文章