力扣268:缺失数字 python&&c

题目:

在这里插入图片描述题目简单,容易理解,直接上代码:

  • 哈希表
    所谓哈希表不需要记得特别复杂,稍稍了解一下,哈希函数其实就是一种通过关键字查询到位置的函数,而哈希表就是存了这些位置。如下
int missingNumber(int* nums, int numsSize){//哈希
    int *flag=(int*)calloc(numsSize+1,sizeof(int));
    int re_int;
    for(int i=0;i<numsSize;i++){
    	flag[nums[i]]=-1;
	}
	for(int i=0;i<=numsSize;i++){
		if(flag[i]!=-1){
			re_int=i;
			break;
		}
	}
	return re_int;
  • 位运算:异或运算
    这里我们用到了位运算的总运算,我们知道0对任何一个数字按位异或都等于那个数字,那么我们将数组的下标,和所有的元素,合在一块1总运算,亦如
例一: 0 ^ 3  ^ 1 ^ 0 ^2 ^ 1 ^ 3=0 ^ 0 ^1 ^ 1 ^ 3 ^ 3 ^ 2=2

代码:

int missingNumber(int* nums, int numsSize){//异或
    int re_int = numsSize;
    for(int i = 0; i < numsSize; i++)
        re_int ^= i ^ nums[i];
    return re_int;
  • python
    利用set的有序性,实现复杂度为O(n)的算法
class Solution:
    def missingNumber(self, nums):
        num_set,l  = set(nums),len(nums) + 1
        for number in range(l):
            if number not in num_set:
                return number
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值