Java 프로그래밍에 관해 많은 평신도 질문이 있습니다.번호 목록이 순차적인지 아닌지 확인하십시오.
번호 목록이 순차적인지 여부를 확인하는 함수를 작성하고 싶습니다.
말 [1, 2, 3, 4, 5, 함수, true를 반환한다
있지만 [1, 3, 4, 9, 10]이 함수는 false를 돌려 것이기
.아무도 도와 줄 수 있습니까?
정말 고마워요!
Java 프로그래밍에 관해 많은 평신도 질문이 있습니다.번호 목록이 순차적인지 아닌지 확인하십시오.
번호 목록이 순차적인지 여부를 확인하는 함수를 작성하고 싶습니다.
말 [1, 2, 3, 4, 5, 함수, true를 반환한다
있지만 [1, 3, 4, 9, 10]이 함수는 false를 돌려 것이기
.아무도 도와 줄 수 있습니까?
정말 고마워요!
목록의 각 요소를 보는 루프를 작성하십시오. 목록의 각 위치 i
들어
운동으로 직접 코드를 작성할 수 있습니다. ... 학습 운동으로이 문제를 치료하는 사람들을 위해 :
UPDATE를 (... 가장자리 케이스를 처리하는 것을 잊지 마십시오).
간단한 직접 구현 방식이 가장 좋습니다. 예 : @ Joe의 최종 답변. 그러나, 간단한 방법은 항상 음 ... 또는 전혀 작동하지 않습니다
List
구현 O(N)
하는 get
방법이있다. 이는 전체적으로 O(N^2)
알고리즘으로 이어질 것입니다.list.get(i)
은 옵션이 아닐 수도 있습니다.이러한 경우 반복기를 사용하여 목록을 한 번 통과하는 알고리즘을 구현할 수 있습니다. 변수에 "이전 요소"를 유지해야합니다.
논리가 간단합니다. 첫 번째 숫자를 가져 와서 다음 값과 일치하는지 확인하십시오. 이렇게 인접한 값을 확인하십시오. 어느 시점에서든 조건이 실패하면 중단하십시오. 모든 if 조건이 true이면 목록이 순차적입니다.
스티븐 C는
int a[] = { 1, 2, 3, 4, 5,7 };
boolean flag = true;
for (int i = 0; i < a.length - 1; i++) {
if (a[i + 1] != a[i] + 1) {
flag = false;
break;
}
}
System.out.println("Flag is " + flag);
닫기 ...하지만 시가가 없음 :-) –
(힌트 : 목록의 첫 번째 요소는 항상 1로 표시됩니다.) –
왜 작동하지 않는지 명확하지 않습니다. 여기에 완전한 main 메서드를보고 직접 테스트하십시오. public static void main (String args []) { \t \t int a [] = {2, 3, 4, 5,6}; \t \t 부울 플래그 = 참; 위한 \t \t는 (; 나는 a.length <- 1]이 [0] = int로 난 내가 ++) { \t \t \t 경우 (a [i가 + 1]!= a [i] + 1) { \t \t \t \t flag = false; \t \t \t \t 휴식; \t \t \t \t \t }} \t \t에서 System.out.println ("플래그가"+ 플래그); \t} – Joe2013
당신이 봤어 아주 간단한 논리이다, 말했듯이 ??? – swemon