Find shortest subarray with at least k distinct | Google Interview Question