📅  最后修改于: 2023-12-03 15:10:06.090000             🧑  作者: Mango
在编写程序时,经常需要寻找某个数字的倍数的数字的位置,本文将介绍一些常用的方法。
遍历数组,判断数组元素是否是目标数字的倍数,如果是,记录该元素的位置。具体实现如下:
def find_multiples(arr, target):
res = []
for i in range(len(arr)):
if arr[i] % target == 0:
res.append(i)
return res
该函数接受一个数组和目标数字作为参数,返回所有是目标数字的倍数的数字的位置。时间复杂度为 $O(n)$。
使用列表推导式,遍历数组,记录目标数字的倍数的数字的位置。具体实现如下:
def find_multiples(arr, target):
return [i for i in range(len(arr)) if arr[i] % target == 0]
该函数接受一个数组和目标数字作为参数,返回所有是目标数字的倍数的数字的位置。时间复杂度为 $O(n)$。
使用numpy数组,找到目标数字的倍数的数字的位置,具体实现如下:
import numpy as np
def find_multiples(arr, target):
arr = np.array(arr)
return np.where(arr % target == 0)[0]
该函数接受一个数组和目标数字作为参数,返回所有是目标数字的倍数的数字的位置。时间复杂度为 $O(n)$。该方法比前两种方法更加高效。
在寻找某个数字的倍数的数字的位置方面,可以使用遍历数组、列表推导式、numpy数组等方法。在实际使用中,可以根据实际情况选择最适合的方法。