不重复打印排序数组中相加和为给定值的所有二元组

  • Post author:
  • Post category:其他




给定排序数组arr和整数k,不重复打印arr中所有相加和为k的不降序二元组

例如, arr = [-8, -4, -3, 0, 1, 2, 4, 5, 8, 9], k = 10,打印结果为:

1, 9

2, 8

[要求]

时间复杂度为O(n),空间复杂度为O(1)

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();
        
        if(n==1){
   
            return;
        }
        int[] arr=new int[n];
        for(int i=0;i<n;i++){
   
            arr[i]=in.nextInt();
        }
        int i=0,j=n-1;
        while(i<j){
   
            int sum=arr[i]+arr[j];
            if(sum<k){
   
                i++;
            }



版权声明:本文为Lily8888888原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。