【发布时间】:2022-01-04 22:52:58
【问题描述】:
受到leetcode challenge 两个总和的启发,我想在 R 中解决它。但是在尝试通过蛮力解决它时,我的 for 循环遇到了问题。
所以基本思想是给定一个整数向量,向量中的两个整数相加为一个设定的目标整数。
首先我创建 10000 个整数:
set.seed(1234)
n_numbers <- 10000
nums <- sample(-10^4:10^4, n_numbers, replace = FALSE)
我在 for 循环中执行了一个 for 循环来检查每个元素是否相互。
# ensure that it is actually solvable
target <- nums[11] + nums[111]
test <- 0
for (i in 1:(length(nums)-1)) {
for (j in 1:(length(nums)-1)) {
j <- j + 1
test <- nums[i] + nums[j]
if (test == target) {
print(i)
print(j)
break
}
}
}
我的问题是它在达到 test == 目标的正确条件之前就开始疯狂打印数字。而且我似乎无法弄清楚为什么。
【问题讨论】:
-
我不知道你在说什么。当我运行它时,它(正确地)打印出匹配项。在这个随机样本中,有 1058 次出现,其中一个
nums加上另一个nums等于target。你在期待什么? -
抱歉,我希望它在第一次比赛后停止,因此中断。