public int minSteps(int n) {
        if(n<=1)return 0;

        Queue<Node> q= new LinkedList<>();
        q.add(new Node(2, 1, 2));
        Map<Integer, Integer> map= new HashMap<>();
        while(!q.isEmpty()){
            Node current=q.remove();
            if(current.val==n)return current.step;
            int left=current.val+current.copyVal;
            int right=current.val*2;
            if(left<n && map.put(left, current.copyVal)==null);
                q.add(new Node(left, current.copyVal, current.step+1));
            if(right<n && map.put(right, current.val)==null)
                q.add(new Node(right, current.val, current.step+2));
        }
        return -1;
    }
Why Did you create this class? what does it do?
src/problems/medium/TwoKeysKeyboard.java