ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

剑指offer-- 0~n-1中缺失的数字(python实现)

2020-11-27 19:30:17  阅读:110  来源: 互联网

标签:元素 题目 数字 nums -- offer python 数组 return


题目描述

这是leetcode上的一道算法题目,我今晚作业不太多于是刚好又遇见了这道题目就手动写了一下,接下来我们看一下题目是什么吧

一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0~n-1之内。在范围0~n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字。

范例

输入: [0,1,3]
输出: 2

输入: [0,1,2,3,4,5,6,7,9]
输出: 8

思路分析:

首先这是一个升序数组,但是我们要对题目的情况进行以下的分类,便可以用最简单的办法进行编码。如果数组只有一个元素,如果该元素为0,则需要返回最小的元素1,如果该元素大于等于1,则返回元素0,此外我们只需在for循环的遍历中,判断num[i]==i,如果循环下来都符合nums[i]==i,则返回i+1,如果有不符合则返回i

class Solution(object):
    def missingNumber(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        t=len(nums)
        if t==1:
            if nums[0]==0:
                return 1
            else:
                return 0
        for i in range(t):
            if nums[i]==i:
                continue
            else:
                return i
        return i+1
        

效率:

在这里插入图片描述

标签:元素,题目,数字,nums,--,offer,python,数组,return
来源: https://blog.csdn.net/kingJamesbond/article/details/110243807

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有