双指针思想的题型总结
将刷题过程中陆续碰到的双指针题型进行一下汇总总结 题目1:不重复打印排序数组中相加和为给定值的所有二元组 题目描述 给定排序数组arr和整数k,不重复打印arr中所有相加和为k的不降序二元组 例如, arr = [-8, -4, -3, 0, 1, 2, 4, 5, 8, 9], k = 10,打印结果为: 1, 9 2, 8 [要求] 时间复杂度为 O(n) O ( n ),空间复杂度为 O(1) O ( 1 ) 输入描述: 第一行有两个整数n, k接下来一行有n个整数表示数组内的元素 输出描述: 输出若干行,每行两个整数表示答案按二元组从小到大的顺序输出(二元组大小比较方式为每个依次比较二元组内每个数) import java.util.*; public class Main{ public static void main(String[] args){ Scanner in=new Scanner(System.in); int n=in.nextInt(); int k=in.nextInt(); int[]a=new int[n]; for(int i=0;i<n;i++){ a[i]=in.nextInt(); } printDouble(a,k); } public static void printDouble(int []a,int k){ if(a