Pages

Saturday, August 23, 2025

Pair Sum 2 - using 2 Pointer approach (JAVA)

 import java.util.*;

public class Main

{

    

    public static boolean pairSum2(ArrayList<Integer> list, int target) {

        int bp = -1; // not a valid index for (breaking point)

        int n = list.size();

        

        

        for(int i=0; i<list.size(); i++) {

            if(list.get(i) > list.get(i+1)) { // breaking point

            bp = i;

            break;

                

            }

        }

        

        int lp = bp+1; // smallest

        int rp = bp; // largest

        

        while(lp != rp) {

            // case 1

            if(list.get(lp) + list.get(rp) == target) {

                return true;

                

            }

            

            // case 2

            if(list.get(lp) + list.get(rp) < target) {

                lp = (lp+1) % n;

        } else { // case 3

                rp = (n+rp-1) % n;

            

           }

        }

        

        return false;

    }

    

public static void main(String[] args) {

    ArrayList<Integer> list = new ArrayList<>();

     

    // 11, 15, 6, 8, 9, 10 - Sorted & Rotated

    list.add(11);

    list.add(15);

    list.add(6);

    list.add(8);

    list.add(9);

    list.add(10);

    

    int target = 16;

    

    

    System.out.println(pairSum2(list, target));

}

}

No comments:

Post a Comment

remove duplicates from sorted array - two pointer approach (leetcode)

  class Solution {     public int removeDuplicates ( int [] nums ) {         // base case: return if array have no el.         if ( nums...