题解 | 最长无重复子数组
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param arr int整型一维数组 the array * @param arrLen int arr数组长度 * @return int整型 */ int maxLength(int* arr, int arrLen ) { // write code here int maxLength = 0; int right = 0; int left = 0; int hash[1000001] = { 0 }; while(right < arrLen) { if(hash[arr[right]] == 0) { hash[arr[right]] = 1; maxLength = ( (right - left + 1) > maxLength ) ? (right - left + 1) : maxLength; right++; } else { hash[arr[left]] = 0; left++; } } return maxLength; }
思路:利用哈希表和滑动窗口解决。