0112leetcode刷题5道python

461

题目描述:
两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。
给出两个整数 x 和 y,计算它们之间的汉明距离。
注意:
0 ≤ x, y < 231.

示例:
在这里插入图片描述
解答:

class Solution:
    def hammingDistance(self, x: int, y: int) -> int:
        return bin(x^y).count("1")

1450

题目描述:
给你两个整数数组 startTime(开始时间)和 endTime(结束时间),并指定一个整数 queryTime 作为查询时间。
已知,第 i 名学生在 startTime[i] 时开始写作业并于 endTime[i] 时完成作业。
请返回在查询时间 queryTime 时正在做作业的学生人数。形式上,返回能够使 queryTime 处于区间 [startTime[i], endTime[i]](含)的学生人数。

示例:
在这里插入图片描述
解答:

class Solution:
    def busyStudent(self, startTime: List[int], endTime: List[int], queryTime: int) -> int:
        res=0
        for i in range(len(startTime)):
            if int(startTime[i])<=queryTime and queryTime<=int(endTime[i]):
                res+=1
        return res

1534

题目描述:
给你一个整数数组 arr ,以及 a、b 、c 三个整数。请你统计其中好三元组的数量。
如果三元组 (arr[i], arr[j], arr[k]) 满足下列全部条件,则认为它是一个 好三元组 。
0 <= i < j < k < arr.length
|arr[i] - arr[j]| <= a
|arr[j] - arr[k]| <= b
|arr[i] - arr[k]| <= c
其中 |x| 表示 x 的绝对值。
返回 好三元组的数量 。

示例:
在这里插入图片描述
解答:

class Solution:
    def countGoodTriplets(self, arr: List[int], a: int, b: int, c: int) -> int:
        n =len(arr)
        res=0
        for i in range(n):
            for j in range(i+1,n):
                for k in range(j+1,n):
                    if abs(arr[i]-arr[j])<=a and abs(arr[j]-arr[k])<=b and abs(arr[i]-arr[k])<=c :
                        res+=1
        return res

1637

题目描述:
给你 n 个二维平面上的点 points ,其中 points[i] = [xi, yi] ,请你返回两点之间内部不包含任何点的 最宽垂直面积 的宽度。
垂直面积 的定义是固定宽度,而 y 轴上无限延伸的一块区域(也就是高度为无穷大)。 最宽垂直面积 为宽度最大的一个垂直面积。
请注意,垂直区域 边上 的点 不在 区域内。

示例:
在这里插入图片描述
解答:

class Solution:
    def maxWidthOfVerticalArea(self, points: List[List[int]]) -> int:
        a=sorted({
    
    x for x,y in points})   #x坐标排序
        res=0
        for i in range(1,len(a)):         #坐标差最大
            if a[i]-a[i-1]>res:
                res=a[i]-a[i-1]
        return res   

剑指offer17

题目描述:
输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。

示例:
在这里插入图片描述
解答:

class Solution:
    def printNumbers(self, n: int) -> List[int]:
        ret=[]
        m=pow(10,n)-1
        for i in range(1,m+1):
            ret.append(i)
        return ret

猜你喜欢

转载自blog.csdn.net/yeqing1997/article/details/112426027