다음 배열, while 와 for 순환 에 대하 여
다음 배열 의 함 수 를 가 져 오 려 면 알고리즘 은 주어진 숫자 서열 을 사전 순서 에서 다음 더 큰 배열 로 다시 배열 해 야 합 니 다.
다음 더 큰 배열 이 존재 하지 않 는 다 면 숫자 를 가장 작은 배열 (즉, 오름차 배열) 로 다시 배열 합 니 다.
제자리 에서 수정 해 야 합 니 다. 추가 상수 공간 만 사용 할 수 있 습 니 다.
다음은 일부 예 입 니 다. 입력 은 왼쪽 열 에 있 고 해당 출력 은 오른쪽 열 에 있 습 니 다.1,2,3 → 1,3,2 3,2,1 → 1,2,3 1,1,5 → 1,5,1
void nextPermutation(int* nums, int numsSize) {
int n = numsSize - 1;
for(; n > 0; n--) // while(n--)
{
if (nums[n] > nums[n-1])
{
nums[n-1] += nums[n];
nums[n] = nums[n-1] - nums[n];
nums[n-1] = nums[n-1] -nums[n];
break;
}
}
if (n == -1)
{
for (n=numsSize - 1; n >= 0; n--)
printf("%d", nums[n]);
}
else
for (n=0; n < numsSize; n++)
printf("%d ", nums[n]);
printf("
");
}
for 순환 처 에서 while (n – > 0) 결 과 를 사용 하기 시 작 했 습 니 다. 프로그램 이 어떻게 실행 되 는 지 정확 하지 않 습 니 다. 생각 이 틀 렸 습 니 다. 어색 합 니 다. gdb 가 따라 잡 았 습 니 다. while 순환 에서 순환 제어 변수 n 의 값 변화 가 틀 렸 습 니 다. 순환 제어 문 구 를 다시 보 겠 습 니 다. while (n – > 0)여기 서 순환 체 n 에 들 어 가 는 값 은 n - 1 입 니 다. 이것 도 while 구문 과 for 의 차이 입 니 다. for 는 순환 체 실행 이 끝나 야 n - 1 작업 을 합 니 다.
3 년 동안 일 한 우리 로 서 이 잘못 은 난처 한 것 입 니 다..................................................................
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.