剑指 Offer 57. 和为s的两个数字
题目:
输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。如果有多对数字的和等于s,则输出任意一对即可。
示例 1:
输入:nums = [2,7,11,15], target = 9 输出:[2,7] 或者 [7,2]
示例 2:
输入:nums = [10,26,30,31,47,60], target = 40 输出:[10,30] 或者 [30,10]
限制:
1 <= nums.length <= 10^5
1 <= nums[i] <= 10^6
代码:
1 //经典双指针题型,此题首尾指针,还有一种双指针为快慢指针 2 class Solution { 3 public int[] twoSum(int[] nums, int target) { 4 int i=0; 5 int j=nums.length-1; 6 int[] res=new int[2]; 7 while(i<j){ 8 if(nums[i]+nums[j]==target){ //当前最小的加上最大的还小于target,那必然最小的要变大,反之,最大的要变小 9 res[0]=nums[i]; 10 res[1]=nums[j]; 11 break; 12 }else if(nums[i]+nums[j]>target){ 13 j--; 14 }else{ 15 i++; 16 } 17 } 18 return res; 19 } 20 }
分类:
leetcode
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术