> 백엔드 개발 > C++ > C++ 프로그램: 최대값을 제거한 후 배열 찾기 최대값을 제거한 후 배열을 찾는 C++ 프로그램

C++ 프로그램: 최대값을 제거한 후 배열 찾기 최대값을 제거한 후 배열을 찾는 C++ 프로그램

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
풀어 주다: 2023-09-04 20:01:02
앞으로
769명이 탐색했습니다.

C++程序:在删除最大值后找到数组

C++程序用于在删除最大值后找到数组

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]입니다.

Steps

이 문제를 해결하기 위해 다음 단계를 따릅니다.

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]
로그인 후 복사

Example

더 나은 이해를 위해 다음 구현을 살펴보겠습니다. −

#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);
}
로그인 후 복사

Input

{ 5, -1, 4, 2, 0 }, 19
로그인 후 복사

Output

0, 6, 1, 3, 5,
로그인 후 복사

위 내용은 C++ 프로그램: 최대값을 제거한 후 배열 찾기 최대값을 제거한 후 배열을 찾는 C++ 프로그램의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿