2013-07-27 3 views
0

내 프로그램은 길이가 긴 연속 된 오름차순으로 된 하위 문자열을 찾습니다.java의 배열에서 숫자 인덱스를 얻는 가장 좋은 방법은 무엇입니까?

그래서 내가 입력하는 경우 : 5;3;4;8;6;7

출력은 다음과 같습니다 4

나뿐만 아니라 가장 큰 부 시퀀스 출력 내 프로그램을하고 싶습니다. Looking for a hint (not the answer) on how to return the longest acsending non contiguous substring when I already have the length

입력했다 그래서 경우 : 5;3;4;8;6;7

Index:  0 1 2 3 4 5 
Value:  5 3 4 8 6 7 
------------ ---------------- 
Length:  1 1 2 3 3 4 
Predecessor: -1 -1 1 2 2 4 

내가 필요 내가 이전에 물었다 질문에 도시 된 바와 같이, 5;3;4;8;6;7 : 그리고 이렇게, 나는 배열의 특정 부분의 인덱스를 필요 각 시간 길이 값의 인덱스는 하나의 이전 값보다 작습니다. 그래서 내가 색인을 필요합니다 : 6,,8,4,3 and 5 그러나 자바에서 이러한 값의 색인을 얻는 방법을 잘 모르겠습니다. 이 작업을 쉽게 수행 할 수있는 방법이 있습니까?

+0

어떻게 당신이 여기 전임자를 계산합니까를 사용할 수 있습니까? 알고 싶어. – Elbek

+1

길이가 가장 큰 인덱스를 얻기 위해 for 루프를 만들었습니다. 따라서 항상 첫 번째 숫자를 갖게됩니다. 그러나 동일한 가치의 길이가 여러 개인 경우 어떻게해야할지 모르겠습니다. (가장 큰 entropy

+0

동일한 배열로 여러 계산을 수행하는 경우 배열을 한 번 반복하고 인덱스와 값을 해시 맵에 저장할 수 있습니다. 키는 숫자입니다. 값은 인덱스입니다. 그런 다음 색인 (일명 5) = map.get (7) – Alex

답변