Monday, May 11, 2020

Socks problem - Can you help me with better logic ?


Problem:

Solution:
static int sockMerchant(int n, int[] ar) {

        int cnt=0;
        Arrays.sort(ar);
        for(int i=0;i<n-1;i++)
            if(ar[i]==ar[i+1]){cnt++;i++;}
        return cnt;

    }

Counting Valleys - Can you find a better solution? (Code in Java)


Problem:


Java8 Code:

static int countingValleys(int n, String s) {
        int lvl=0,vc=0;
        boolean valleyFlag=false;
        char[] stps=s.toCharArray();
        
        for(int i=0;i<stps.length;i++)
        {
            if(stps[i]=='D') lvl--;
            else if(stps[i]=='U') lvl++;
            if(lvl==0 && valleyFlag==true)
            {
                valleyFlag=false;
                vc++;
            }
            if(lvl==-1) valleyFlag=true;
        }
        return vc;
    }