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