剑指 Offer 57. 和为s的两个数字

Posted on   AcTourist  阅读(19)  评论(1编辑  收藏  举报

一、题目

 

二、分析

  1.双指针:在一个递增数组里,一头 i 指向数组里的最小值,一头 j 指向数组里的最大值,当 i + j 的值大于目标值,说明 j 的当前数组太大,要向左边递减,反之小于目标值,i 的当前数组太小,要向右边递增。

三、代码

复制代码
/**
 * @param {number[]} nums
 * @param {number} target
 * @return {number[]}
 */
var twoSum = function(nums, target) {
   let i = 0;
   let j = nums.length-1;

   while( i<j ){
       if( nums[i] + nums[j] === target) return [nums[i],nums[j]];
       if( nums[i] + nums[j] > target) j--;
       else i++;
   }

    return null;
};
复制代码

 

相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示