如何用PYTHON解决搜索插入位置问题
1、打开JUPYTER NOTEBOOK,新建一个空白的PY文档。
2、nums = [1,3,5,6]target = 5for i in range(len(nums)): if nums[i] == target: print(i)正常的遍历可以找出相等的数字。
3、nums = [1,3,5,6]target = 2for i in range(len(nums)): if nums[i] == target: print(i)如果数字不在,就不返回结果。
4、nums = [1,3,5,6]target = 5nums.index(target)nums = [1,3,5,6]target = 5if target in nums: print(nums.index(target))也可以这样稍微修改一下。
5、nums = [1,3,5,6]target = 2if target in nums: print(nums.index(target))else: for i in range(len(nums)): if nums[i] < target and nums[i+1] > target: print(i+1)如果不在就插入相应的位置。这里是假设的位置,返回位置的序列。
6、nums = [1,3,5,6]target = 0if target in nums: print(nums.index(target))else: for i in range(len(nums)): if nums[i] < target and nums[i+1] > target: print(i+1)nums = [1,3,5,6]target = 0if target in nums: print(nums.index(target))else: for i in range(len(nums)): if target < nums[0]: print(0) break elif nums[i] < target and nums[i+1] > target: print(i+1)如果是最小数0,那么我们应该多考虑一种结果。
7、nums = [1,3,5,6觥终柯计]target = 7if target in nums: print(nums.index(target))else: for i in range(l髫潋啜缅en(nums)): if target < nums[0]: print(0) break elif nums[i] < target and nums[i+1] > target: print(i+1)nums = [1,3,5,6]target = 7if target in nums: print(nums.index(target))else: for i in range(len(nums)): if target < nums[0]: print(0) break elif nums[i] < target and nums[i+1] > target: print(i+1) elif target > nums[-1]: print(len(nums)) break如果是最大数,我们应该增加一种考虑。
8、nums = [1]target = 2if target in nums: print(nums.index(target))else多唉捋胝: for i in range(len(nums)): if target < nums[0]: print(0) break elif nums[i] < target and nums[i+1] > target: print(i+1) elif target > nums[-1]: print(len(nums)) breaknums = [1]target = 2for i in range(len(nums)): if target < nums[0]: print(0) break elif nums[i] == target: print(i) break elif nums[i] < target and nums[i+1] > target: print(i+1) elif target > nums[-1]: print(len(nums)) break如果列表只有一个数字,这个方法会超出范围。
9、nums = [1]target = 2for i in range(len(nums)): if target < nums[0]: print(0) break elif nums[i] == target: print(i) break elif nums[i] < target: print(i+1) break elif target > nums[-1]: print(len(nums)) break修改一下即可运行。
10、nums = [1,3,5,6觥终柯计]target = 7for i in range(len(nums)): if nums[0] > target: print(0) break elif nums[i] == target: print(i) break elif nums[i] < target and nums[i+1] > target: print(i+1) break elif target > nums[-1]: print(len(nums)) breaknums = [1]target = 2for i in range(len(nums)): if nums[0] > target: print(0) break elif nums[i] == target: print(i) break elif target > nums[-1]: print(len(nums)) break elif nums[i] < target and nums[i+1] > target: print(i+1) break多测试一下两个实例。
11、nums = [1,3,5,6]target = 7for i in range(len(nums)): if nums[0] > target: print(0) break elif nums[i] == target: print(i) break elif target > nums[-1]: print(len(nums)) break elif nums[i] < target and nums[i+1] > target: print(i+1) break最后调整一下这样就是比较容易理解的。