내가 여기에만 간단한 연설, 나는이 주제를 수행에서 발생하는 문제입니다, 블로그의 많은 LeetCode374 상세한 설명을 만들어 해결하기 위해 아이디어와 방법을 가지고 이미있다!
이 솔루션은 절반의 공간 검색에 주어진 그 숫자마다 컷을 찾기 위해 이분법의 원리를 사용하는 것입니다!
중간 값의 계산에서, 중간 두 식을 가지고 :
mid = (low + high) / 2;
mid = low + (high - low) / 2;
이 두 식의 차이는 : 시간의 작은 범위를 찾을 때, 사용할 수 있지만 시간의 넓은 범위, 낮은 + 최고는 오류를 실행하는, 오버 플로우가 나타날 수 있습니다 때!
물론,이 경우, 프로그램은 반드시 (자신의 컴퓨터에서 멈추지 프로그램하는 동안, 제출 과정 후에이 시간 종료) 오류가 실행되지 않습니다,
시작은 단지 잘 알고 여전히 이분법하지 찾기 느낄 수 있습니다 국경주기는 질문을 밖으로하지만, 검사 후이 이유없는 것으로 나타났습니다;
바이두와 학생들과의 토론에서, 그들은 결국 알고 너무 큰 번호이며, 축적 된 오버 플로우가 발생하면, 캐시 공간 문제가 발생, 충돌!
나중에 순간을 바이이 오류 오버플로 일반적으로하지 않거나 상황이 초과 근무를 실행할 수 있도록, 오류 메시지가 표시!
요약하면, 때 이진 검색을 사용 후, 피할 오버 플로우, 두 번째 공식을 사용하려고!