查找两个总和为特定值的索引(蓝桥杯)

2023-12-14 11:09:45

#include <stdio.h>
int main(){
	int n;
	scanf("%d",&n);
	int s[n];
	for(int i = 0 ; i < n ; i++)
	 scanf("%d",&s[i]);
	int k;
	scanf("%d",&k);
	int sum = 0;
	int t=0,h;
	int st[101]; 
	for(int i = 0 ; i < n ; i++)
	st[i] =0;     //标记数组 找到最小的 标记
	for(int j=0,i=j+1;i<n;)      // 双指针思想 
	{   
		 if(s[j] + s[i] == k)
		 {
		 	  st[j]=i;     
		 }
		 if(i+1==n)
		{
			j++;
			i = j + 1;
		}
		i++;
	}
	for(int i = 0 ; i < n ; i++)
	if(st[i]) 
	   {
	   	  printf("%d %d",i,st[i]);
	   	  break;
	   }
	return 0; 
}

文章来源:https://blog.csdn.net/woyvxuetongzai52/article/details/134914461
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。