三数之和
#include <stdio.h>
int main(int argc, char const *argv[])
{
int nums[6] = {-1,0,1,2,-1,4};
int ret = 0;
int i,j,k;
for(i=0;i<6;i++)
{
for(j=i+1;j<6;j++)
{
for(k=j+1;k<6;k++)
{
i!=j,j!=k,i!=k;
if(nums[i]+nums[j]+nums[k] == 0)
printf("[%d,%d,%d]\n",nums[i],nums[j],nums[k]);
}
}
}
return 0;
}
子集
#include <stdio.h>
int main(int argc, char const *argv[])
{
int nums[] = {1,2,3};
int ret = sizeof(nums)/sizeof(nums[0]);
printf("[]");
for(int i = 0;i < ret;i++)
{
printf("[%d]",nums[i]);
for(int j = i+1;j < ret;j++)
{
printf("[%d,%d]",nums[i],nums[j]);
for(int k = j+1;k < ret;k++)
{
printf("[%d,%d,%d]",nums[i],nums[j],nums[k]);
}
}
}
return 0;
}
元素移除
#include <stdio.h>
int main(int argc, char const *argv[])
{
int nums[4] = {3,2,2,3};
int val = 3;
int ret = 0;
int j = 0;
int i;
for(i = 0;i < 4;i++)
{
if(nums[i] != val)
{
nums[ret++] = nums[i];
printf("%d",nums[i]);
j++;
}
}
printf("长度:%d",j);
return 0;
}