复杂度
- 🎈1.例题一
- 🎈2.例题二
🎈1.例题一
数组
nums包含从0到n的所有整数,但其中缺了一个,请编写代码找出那个缺失的整数。
✅思路1:先冒泡排序,再遍历,当前值+1,不等于下一个数字。那么,当前值+1得到的数字即为缺失的整数。
✅思路2:用0与该数组中的每个数以及0~n这几个数进行异或运算,得到的结果即为缺失的数。
✅思路3:0~n等差数列公式计算和,依次减掉数组中的数据,剩下的就是消失的数字。
//思路二:
int missingNumber(int* nums, int numSize)
{
	int x = 0;
	for (int i = 0; i < numSize; ++i)
	{
		x ^= nums[i];
	}
	for (int i = 0; i <= numSize; ++i)
	{
		x ^= i;
	}
	return x;
}
//思路三:
int missingNumber(int* nums, int numSize)
{
	int N = numSize;
	int sum = ((0 + N) * (N + 1)) / 2;
	for(int i = 0; i < numSize; ++i)
	{
		sum -= nums[i];
	}
	return sum;
}
🎈2.例题二
给定一个整数数组
nums,将数组中的元素向右轮转k个位置,其中k是非负数。
✅思路:
void reverse(int* a, int left, int right)
{
	while (left < right)
	{
		int temp = a[left];
		a[left] = a[right];
		a[right] = temp;
		++left;
		--right;
	}
}
void rotate(int* nums, int numsSize, int k)
{
	k %= numsSize;
	reverse(nums, 0, numsSize - k - 1);
	reverse(nums, numsSize - k, numsSize - 1);
	reverse(nums, 0, numsSize - 1);
}
好啦,关于数据结构的复杂度到这里就先结束啦,后期会继续更新学习数据结构初阶的相关知识,欢迎大家持续关注、点赞和评论!❤️❤️❤️




















