您的位置:首页 > 其它

【leetcode】1.Two Sum

2016-02-29 22:34 381 查看
#include<stdio.h>
#include<stdlib.h>

#define N 10
/**
给定一个数组a和目标和target,求满足a[i]+a[j] = target的【i,j】

*/

typedef struct Sum{
	int i;
	int j;
};
int n = 0;
void twoSum(int a[],int target,Sum b[]){
	for(int i = 0;i<N/2;i++){
		if(a[i]<=target){
			for(int j = i+1;j<N;j++){
				if(a[i]+a[j]==target){
					b
.i = i;
					b
.j = j;
					n++;
					break;
				}
			}
		}
	}
}

void main(){
	//定义动态数组
	Sum *b;
	int a
 = {2,3,4,6,8,0,1,12};
	//为动态数组分配空间,确保正常输出
	b = (Sum*)malloc(sizeof(Sum)*N/2);
	int target = 14;
	twoSum(a,target,b);
	for(int i = 0;i<n;i++){
		printf("%d %d",b[i].i,b[i].j);
		printf("\n");
	}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: