【每日一练】Python-查找点在自然区间的坐标

题目描述

定义: * 实数轴上的一个区间由左右两个端点,假设区间是左闭右开的,例如区间`[0,1)` * 给定一个有序的不重合非负整数区间列表 `range_list` :[ `[0,1)`, `[3,4)` ] * 该非负整数区间列表将实数轴分割成了这些区间列表 `range_list_nature_ext` : [`(-∞,0)`,`[0,1)`,`[1,3)`,`[3,4)`,`[4,+∞)`] * 我们称 `range_list_nature_ext` 为由 `range_list` 扩展的 `自然区间` 问题:写一个查找算法,对于给定非负整数区间列表 `range_list` ,查找一个非负整数 `p` 落在了 `range_list_nature_ext` 的那个区间,返回那个区间的在 `range_list_nature_ext` 里的下标,我们称这个下标为非负整数 `p` 在 `rage_list` 里的 `自然坐标`。

  • 输入描述

第一行输入要查找的非负整数 `p`,以及区间列表个数 `N`,用空格分开 第二行到第`N+1`行输入非负整数区间列表的每个区间,这些区间列表不重叠,按在实数轴上从左到右的顺序挨个输入,区间的两个坐标用空格分开。

  • 输出描述

输出一行,包含非负整数 `p` 的自然坐标

  • 要求

时间限制:1000 ms
内存限内存限制制:256 M
  • 参考示例

输入

12 2

0 10

15 20

输出

2

解题思路

把找区间下标简单看成比较大小(排序)问题,因为所有区间都是左闭右开,从小到大或从大到小比较所有区间右边界或者左边边界即可。

代码和结果

class Solution:
    def __init__(self) -> None:
        pass
    
    def solution(self, P, N, vector):
        result = None
        # TODO: 请在此编写代码
        thres = []
        for v in vector:
            thres.append(v[0])
            thres.append(v[1])
        result = len(thres)
        for i in range(len(thres)):
            if P < thres[i]:
                result = i
                return result

        return result

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值