给定一个包含 0, 1, 2, ..., n 中 n 个数的序列,找出 0 ..n 中没有出现在序列中的那个数。
示例 1:
输入 : [3, 0, 1]
输出 : 2
示例 2 :
输入 : [9, 6, 4, 2, 3, 5, 7, 0, 1]
输出 : 8
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
//因为是0-n中少一个数,那么直接用一个自加的数异或该数组的数 最后的结果是几,就返回几
int missingNumber(int* nums, int numsSize) {
int a = 1;
int i = 0;
int num = 0;
for (; i<numsSize; i++, a++)
{
num ^= (a^nums[i]);
}
return num;
}
int main()
{
int nums[] = { 9, 6, 4, 2, 3, 5, 7, 0, 1 };
int len = sizeof(nums) / sizeof(int);
int a = missingNumber(nums, len);
printf("%d\n", a);
system("pause");
return 0;
}
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。
示例 :
输入 : [0, 1, 0, 3, 12]
输出 : [1, 3, 12, 0, 0]
#de