Java LeetCode 구현(번호)
public String countAndSay(int n) {
if(n == 1){
return "1";
}
// ,
String str = countAndSay(n-1) + "*";// str ,
char[] c = str.toCharArray();
int count = 1;
StringBuilder s = new StringBuilder();
for(int i = 0; i < c.length - 1;i++){
if(c[i] == c[i+1]){
count++;//
}else{
//s.append(s);
s.append("" + count + c[i]);// *
count = 1;//
}
}
return s.toString();
}
한 번 만 세면 결 과 는'1'이다.이것 은 특수 한 상황 이다.세 려 는 횟수 가 1 보다 많 으 면 재 귀 에 들 어가 야 한다.문자열 에 대해 서 는 자 연 스 럽 게 문 자 를 조작 할 수 없 기 때문에 String 을 char 배열 로 변환 해 야 합 니 다.그 다음 에 for 순환 밖에서 count 변 수 를 정 의 했 습 니 다.주요 역할 은 연속 적 인 문자 가 나타 날 때 누적 하고 마지막 으로 문자 로 전환 하 는 것 입 니 다.이것 은 가장 관건 적 인 부분 입 니 다.이 문 제 를 푸 는 과정 에서 처음에 사용 한 것 은 모두 string 이 고 운행 시간 은 30ms 정도 이다.나중에 for 순환 중의 string 변 수 를 Stringbuffer 로 바 꾸 었 고 실행 할 때 8ms 로 급 격 히 떨 어 졌 습 니 다.이것 은 저 에 게 더 이상 String 을 머리 없 이 사용 할 수 없고 적당 할 때 적당 한 변수 유형 을 사용 하면 큰 성능 향상 을 가 져 올 수 있다 는 큰 시사 점 을 주 었 습 니 다.
그러나 제출 후,나 는 사용 시 1ms 의 범례 를 보 았 다.그야말로'투기'의 전형 이다.이 건 정말 똑똑 해!!!
자바 가 LeetCode(번호)를 실현 하 는 것 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 자바 실현 번호 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.