In ra hiệu số nhỏ nhất của 2 phần tử trong mảng

mọi người cho em hỏi làm sao để in ra hiệu số nhỏ nhất của 2 phần tử trong mảng. ví dụ nhập mảng( 1,4,3,7) in ra là 1. em cảm ơn

Hai vòng lặp lồng nhau, trừ từng phần tử với nhau, chọn kết quả |nhỏ nhất|. Trị tuyệt đối.

2 Likes

Sort (quicksort) lại ez :smiley:

2 Likes

Sắp xếp rồi tìm 2 số liên tiếp có hiệu nhỏ nhất

1 Like

em thử rồi mà k được

#include<bits/stdc++.h>
#define bai "CR"
#define ll long long
using namespace std;
const ll nyh=1e6;
ll a[nyh+1];
ll F[nyh+1];
ll T[nyh+1];
int nam()
{
	freopen(bai".inp","r",stdin);
	freopen(bai".out","w",stdout);
	return 0;
}
int main()
{
	nam();
	ll n;
	cin>>n;
	for(ll i=1;i<=n;i++)
	{
		cin>>a[i];
	}
	for(ll j=1;j<=n;j++)
	{
		F[j]=*min_element(a+j+1,a+n+1);
	}
	for(ll i=1;i<=n;i++)
	{
		T[i]=a[i]-F[i];
	}
	cout<<*max_element(T,T+n);
	return 0;
}

từ code hiểu hai số lớn nhất của tớ, cậu có thể điều chỉnh lại cho phù hợp với đề bài nhé, áp dụng quy hoạch động.

Bạn ấy hỏi cách đây 4 năm rồi bạn :stuck_out_tongue:

Bạn có thể nêu 1 cách rõ ràng thuật toán của bạn không?

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?