|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
/*//给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
#include<stdio.h>
#include<string.h>
void main(void)
{
int nums[] = { 2, 7, 11, 15 };
int target = 9;
int len = sizeof(nums) / sizeof(nums[0]);
printf("%d", len);
for (int i = 0; i < len-1; i++) {
for (int j = i + 1; j < len; j++) {
if (nums[j] == target - nums[i]) {
printf("%d %d\n", i,j);
}
}
}
}
*/
/*
#include<stdio.h>
struct sum {
int exi;//是否存在
int local;//存在的位置
};
int nums[] = { 2, 7, 11, 15 };//定义无序无重复
int flag = 9;//两数相加目标值
int len = sizeof(nums) / sizeof(nums[0]);//数组长度
int main(void) {
struct sum sum1[20];//长度为最大数的值+1
int i;
for (i = 0; i < 20; i++) {//初始化
sum1[i].exi = 0;
sum1[i].local = 0;
}
int j,k;
for (j = 0; j < len; j++) {//给数组中存在的数赋值
sum1[nums[j]].exi = 1;
sum1[nums[j]].local = j;
}
for (k = 0; k < len; k++) {
int num = flag - nums[k];
if (sum1[num].exi == 1) {//哈希表查找
printf("%d,%d\n", k, sum1[num].local);
sum1[num].exi = 0;//查找结束将这两个加数删除
sum1[nums[k]].exi = 0;
}
}
return 0;
}*/
/*
#include<stdio.h>
struct sum {
int e;
int local;
};
int nums[] = { 2, 7, 11, 15 };
int flag = 9;
int len = sizeof(nums) / sizeof(nums[0]);
int main(void) {
struct sum sum1[100];
int i;
for (i = 0; i < 20; i++) {
sum1[i].e= 0;
sum1[i].local = 0;
}
int j, k;
for (j = 0; j < len; j++) {
sum1[nums[j]].e = 1;
sum1[nums[j]].local = j;
}
for (k = 0; k < len; k++) {
int num = flag - nums[k];
if (sum1[num].e == 1) {
printf("%d %d\n", k, sum1[num].local);
sum1[num].e = 0;
sum1[nums[k]].e = 0;
}
}
return 0;
}
*/ |
|