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};
    }

小贴士

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

相关推荐
岱宗夫up3 分钟前
【前端基础】HTML + CSS + JavaScript 基础(三)
开发语言·前端·javascript·css·html
蜜獾云5 分钟前
JAVA面试题速记-redis知识点
java·开发语言·redis
白太岁7 分钟前
操作系统开发:(11) RTOS 与 GPOS 的分界线:MMU
c语言·开发语言·汇编·arm开发·系统架构
lly2024068 分钟前
Vue3 目录结构
开发语言
m0_531237179 分钟前
C语言-指针进阶
c语言·开发语言
Java后端的Ai之路9 分钟前
在一个 Python 脚本中导入另一个脚本的功能
服务器·开发语言·python
Drifter_yh16 分钟前
「JVM」 深入理解 StringTable:从底层编译优化到 intern 核心解密
java·jvm
W1333090890718 分钟前
高职大数据技术专业,CDA和Python认证优先考哪个?
大数据·开发语言·python
kyle~25 分钟前
Python---watchdog文件系统监控库
开发语言·python·操作系统·文件系统
JavaLearnerZGQ26 分钟前
Spring Boot 流式响应接口核心组件解析
java·spring boot·后端