n개의 요소와 또 다른 값 k를 포함하는 배열 A가 있다고 가정합니다. 우리는 k개의 작업을 수행하고 싶습니다. 한 연산의 형식은 다음과 같습니다.
d가 배열의 최대값이라고 가정합니다.
1부터 n까지의 각 인덱스 i에 대해 A[i]를 d - A[i]
We The로 바꿉니다. 최종 순서를 찾아야 합니다.
데이터 구조의 배열은 특정 유형의 유한한 요소 집합입니다. 배열은 다음과 같이 사용됩니다. 동일한 유형의 요소를 연속적인 메모리 위치에 저장합니다. 배열이 할당되었습니다. 다양한 프로그래밍 언어에서 해당 이름으로 참조되는 특정 이름 배열 요소에 액세스하려면 인덱스가 필요합니다. 우리는 "이름[i]"라는 용어를 사용하여 'name' 배열의 'i' 위치에 있는 특정 요소에 액세스합니다. 다양한 데이터 구조 예를 들어 스택, 큐, 힙, 우선순위 큐는 모두 배열을 사용하여 구현할 수 있습니다. 다음에서 작동 배열에는 삽입, 삭제, 업데이트, 탐색, 검색 및 정렬 작업이 포함됩니다. 입장 아래 링크는 추가 자료를 위한 것입니다.
https://www.tutorialspoint.com/data_structures_algorithms/array_data_structure.htm
그래서 문제의 입력이 A = [5, -1, 4, 2, 0]이면 출력은 다음과 같습니다. d는 5이므로 is는 [0, 6, 1, 3, 5]입니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다.
n := size of A m := -inf t := -inf for initialize i := 0, when i < n, update (increase i by 1), do: m := maximum of m and A[i] for initialize i := 0, when i < n, update (increase i by 1), do: A[i] := m - A[i] t := maximum of t and A[i] if k mod 2 is same as 1, then: for initialize i := 0, when i < n, update (increase i by 1), do: print A[i] Otherwise for initialize i := 0, when i < n, update (increase i by 1), do: A[i] := t - A[i] print A[i]
더 나은 이해를 위해 다음 구현을 살펴보겠습니다. −
#include <bits/stdc++.h> using namespace std; void solve(vector<int> A, int k){ int n = A.size(); int m = -999; int t = -999; for (int i = 0; i < n; i++) m = max(m, A[i]); for (int i = 0; i < n; i++) A[i] = m - A[i], t = max(t, A[i]); if (k % 2 == 1) for (int i = 0; i < n; i++) cout << A[i] << ", "; else for (int i = 0; i < n; i++) A[i] = t - A[i], cout << A[i] << ", "; } int main(){ vector<int> A = { 5, -1, 4, 2, 0 }; int k = 19; solve(A, k); }
{ 5, -1, 4, 2, 0 }, 19
0, 6, 1, 3, 5,
위 내용은 C++ 프로그램: 최대값을 제거한 후 배열 찾기 최대값을 제거한 후 배열을 찾는 C++ 프로그램의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!