최근 인터뷰에서이 질문을 받았습니다. 반복되는 문자없이 가장 긴 substring을 찾아야합니다.는 " abcabcbb"는 대답은 3 는 "bbbbb"는 대답이 주어 1. 의 길이, "b"입니다 감안할 "길이가"abc "을 감안할 때 입니다 pwwkew "이면 대답은"wke ", 길이는 3입니다. 이것은 내가 생각해 낸 것입니다. 올바르게 작동한다고 생각하
일반적으로 계산상의 복잡성에서 우리는 시간과 공간의 복잡성에 대해 이야기합니다. 즉, 우리는 어떤 문제를 해결하는 데 필요한 시간이나 공간이 얼마나되는지 생각합니다. 다른 종류의 자원 (시간 및 공간 이상)이 있는지 알고 싶습니다. 계산상의 복잡성에 대한 설명을 참조 할 수 있습니다.
원래는 ArrayList으로 작성되어 고유 한 값 (사용자 이름, 즉 Strings)이 저장되어 있습니다. 나중에 ArrayList을 사용하여 사용자가 존재하는지 검색해야했습니다. 검색은 O(n)입니다. 내 기술 담당자는이를 HashMap으로 변경하고 사용자 이름을 배열의 키로 저장하고 값을 Strings으로 비워줬으면합니다. 자바 그래서 -이 사용자가 나
이 이전 SO 포스트 .NET 교점을 이용하여 설명() 메소드 Intersection of two sets in most optimized way 그것은 O로서 법의 큰 O 복잡도 설명 (m + n). 그것은 시간이 모두 및 공간에 대한 큰 O를 복잡 한가요? 또한 위의 복잡도가 o (n + m)로 작성되어야하므로 n은 큰 o 표기법에서 m 앞에 와야한다는
알 수없는 알고리즘의 런타임을 모델링하는 반복 관계가 있으며 알고리즘 실행 시간의 하한 또는 상한 및 하한을 찾아야합니다. 사면 거친 형식화하는; Latex-to-image 파서는 이상하게 숫자 식을 사용했습니다. 각 방정식의 수는 숫자가 참조하는 마크 업의 왼쪽 아래 아래이며 입니다. 식 (1)과 (2)는 반복 관계의 부분이다. 방정식 (2)에서 (3)까
나는 처음에는 벡터를 정렬 한 다음 그 요소를 반복하고 XOR 알고리즘을 가지고 있습니다. 전체 알고리즘의 복잡성을 계산하기 위해 sort 및 for 루프의 복잡성을 합산해야합니까? std::sort(array.begin(), array.end());
for (int i =1; i < array.size(); ++i) {
result = arra
배열이 주어지면 모든 요소에 대해 주어진 요소의 오른쪽에서 현재 요소보다 큰 가장 작은 요소를 찾아야합니다. 수학적 배열 A의 모든 인덱스 i를 들어 , 난이 무력 솔루션은 O(n^2) 될 때마다 인덱스 i 에 대한 j을 찾을 필요가 인덱스 j 등이 A[j] > A[i]
j > i
A[j] - A[i] is minimum
찾을 필요 나는 더 잘하기를
addAll 작업에 대해 O (1)의 복잡성과 O (n)이 아닌 Java 컬렉션이 있습니까? 아니면 내 컬렉션을 구현해야합니까? 효율적인 연결 목록을 사용하면 Collection1.addAll (Collection2) 작업은 컬렉션 2의 첫 번째 노드를 컬렉션 1의 마지막 노드에 추가하는 첫 번째 노드에 두 번째 컬렉션을 추가해야합니다. 하지만 Iterat