0과 10000 사이의 정수로 구성된 N 요소의 정수 배열이 있다고 가정 해 보겠습니다. 숫자를 두 자 이상 포함하는 숫자를 두 번 이상 감지해야합니다 (예 : 1245가 유효하고 1214가 유효하지 않음). 우리는 이것을 어떻게 최적으로 할 수 있습니까? 감사!정수에서 중복 자릿수 찾기
-1
A
답변
0
두 개의 루프가 필요합니다. 루프의 각 요소는 배열의 각 요소를 검사합니다.
내부 루프에서는 지정한 기준에 따라 요소가 유효한지 여부를 결정합니다. 숫자에 동일한 숫자가 두 번 이상 있는지 확인하려면 각 숫자를 하나씩 효과적으로 추출하는 루틴이 필요합니다. 가장 좋은 방법은 숫자에 대해 "mod 10"을 수행 한 다음 원래 숫자를 10으로 나눈 것을 반복하는 것입니다. 숫자가 남아 있지 않을 때까지 계속 수행하십시오. 이제 정수의 각 자릿수를 살펴 보는 루틴을 가졌으므로 중복 자릿수가 있는지 확인하는 방법은 가장 효율적으로 10 개의 부울 배열을 만드는 것입니다. 해제 된 배열로 시작하십시오. 모든 자릿수에 대해 bool 배열의 인덱스로 사용하고 true로 설정하십시오. 설정하기 전에 해당 지점에서 "true"가 다시 표시되면 bool 배열의 요소가 이전에 방문되었음을 의미하므로 중복 된 숫자입니다. 그래서 당신은 루프에서 벗어나 잘못된 값을 발견했다고 말합니다.
관련 문제
- 1. 정수의 최대 자릿수 찾기
- 2. 행의 최대 연속 자릿수 찾기
- 3. 역행 찾기 중복 찾기
- 4. 중복 찾기
- 5. 찾기 중복
- 6. 중복 파티션을 사용하여 중복 찾기
- 7. 소수 자릿수 k로 잘린 소수점 찾기
- 8. vim의 패턴 [자릿수 : 자릿수]
- 9. 처리중인 자릿수
- 10. 중복 찾기 및 표시
- 11. 중복 쿼리 찾기
- 12. ArrayList의 중복 난수 찾기
- 13. 중복 이미지 파일 찾기
- 14. 목록에서 단어 중복 찾기
- 15. 배열에서 중복 찾기
- 16. 중복 항목 찾기 SQL
- 17. 중복 찾기 SQL
- 18. 찾기 중복 주문은
- 19. 배열에서 중복 데이터 찾기
- 20. 배열의 중복 번호 찾기
- 21. 중복 파일 찾기
- 22. 목록에서 중복 데이터 찾기
- 23. 찾기 중복 행
- 24. 중복 이름 찾기 sql
- 25. `찾기 '중복 출력
- 26. BODI에서 중복 레코드 찾기
- 27. 중복 서적 찾기
- 28. SQL, xQuery : 중복 찾기
- 29. 중복 배열 요소 찾기
- 30. 찾기 절단 가능한 중복
최적의 방법은 전체 어레이를 스캔하고 어레이의 각 요소를 스캔하는 것입니다. 당신의 생각은 어떠 했습니까? –
모든 정수를 검사 할 필요가 있기 때문에 전체 어레이를 스캔해야한다고 생각합니다. 그러나 실제 문제는 각 정수에서 중복 된 정수를 효과적으로 감지하는 방법이라고 생각합니다. –
그리고 각 자릿수를 보지 않고 어떻게 할 것을 제안합니까? –