LCR-006-两数之和II-输入有序数组

求解代码

java 复制代码
    public int[] twoSum(int[] numbers, int target) {
        for(int i=0;i<numbers.length;i++){
            int left = i+1;
            int right = numbers.length-1;
            
            //二分查找是闭区间 [left, right],等号保证最后一个元素被检查,避免漏查
            while (left<=right) {
                int mid = left+((right-left)>>1);
                if(target-numbers[i]==numbers[mid]){
                    return new int[]{i,mid};
                }else if(target-numbers[i]>numbers[mid]){
                    left=mid+1;
                }else{
                    right=mid-1;
                }
            }
        }
        return new int[]{-1,-1};
    }

小贴士

前文【哈希】两数之和 是使用哈希做的,这次利用有序的特性,通过二分的方法完成。

相关推荐
starzy199015 分钟前
Scala循环与判断:一切皆表达式的控制流
开发语言·人工智能·scala
wangbing112525 分钟前
平台介绍-modbus设备调试
java
starzy199030 分钟前
Scala类和对象:从构造器到样例类的完整指南
开发语言·后端·scala
niucloud-admin41 分钟前
NIUCLOUD PHP SAAS上门家政使用文档--服务订单:订单列表
开发语言·php
西索斯coding1 小时前
gpt-image-2.5-sunburst 和 gemini-3.1-flash-image 差多少?60 组项目素材的成功成本评测框架
java·linux·gpt·ai
怪我冷i1 小时前
Rust 的impl语法详解
开发语言·后端·rust
wuminyu1 小时前
Java字节码学习总结:字节码如何加载、解析和执行
java·linux·c语言·jvm·c++
qq_406981032 小时前
c++的decltype是什么
开发语言·c++
坤坤子吖2 小时前
算法学习——单调队列
开发语言·c++·笔记·学习·算法
Flynn Liang2 小时前
大模型怎么自己调函数?Spring AI 2.0 Tool Calling 自动循环原理 + 完整时序图
java·人工智能·spring·agent·函数调用·springai·toolcalling