PAT A1048コインの検索(25ポイント)(デュアルポインターアルゴリズム)

ここに画像の説明を挿入

#include <cstdio>
#include <algorithm>

using namespace std;

int main(){
    
    
	int n, m;
	scanf("%d %d", &n, &m);
	
	int arr[n];
	for(int i=0; i<n; i++){
    
    
		scanf("%d", &arr[i]);
	}
	
	sort(arr, arr+n);
	
	int i=0, j=n-1;
	while(i < j){
    
    
		if(arr[i]+arr[j] < m){
    
    
			i++;
		}else if(arr[i]+arr[j] > m){
    
    
			j--;
		}else{
    
    
			printf("%d %d", arr[i], arr[j]);
			return 0;
		}
	}
	
	printf("No Solution");
	
	return 0;
}

この問題を解決するには、2つのポインタが非常に適しています

おすすめ

転載: blog.csdn.net/weixin_45964844/article/details/112093466