小编Loc*_*hoe的帖子

即使没有滚动内容,scrollHeight 也大于 clientHeight

我有一段 JS 代码,用于确定是否存在垂直滚动条并将 CSS 类应用于元素。没什么大不了的。让我困惑的是它似乎在做与我理解的它应该做的相反的事情。这不是问题,除非它是一个错误并且将来会修复。
代码:

if (document.body.scrollHeight > document.body.clientHeight) {
    var d = document.getElementById("footer").className = "footernoscroll";
}
Run Code Online (Sandbox Code Playgroud)

我的理解是,如果有垂直滚动条,它将应用该类,但如果没有滚动条,它似乎正在应用该类。我是否正确解释了这一点,并且代码表现得很奇怪,或者我的解释是错误的?

编辑:我想我应该添加,如果我反转运算符,效果将反转,并且它将使用else语句的一部分。

javascript css

8
推荐指数
1
解决办法
1万
查看次数

一旦在子集中找到目标产品,如何使python停止?

我一直在学习python,这是我对NP完全问题(例如子集产品)的爱好和经验研究。我有算法,但是并没有按照我打算的方式进行。

我想做的是combinations一旦itertools 到达输入变量的子集,就停止它target。这会稍微加快代码的速度。该代码处于抛光阶段,因此有不必要的列表res_2

这是循环。

res_2 = [];
for i in range(1, len(s)+1):

   var = (findsubsets(s, i))   
   kk = list(map(numpy.prod, var))
   res_2.append(kk)
   if target in kk:
     print('yes')
     print(var)
     break
Run Code Online (Sandbox Code Playgroud)

这是我不需要的输出。请注意,脚本不会在(4,4)处停止。一旦目标被“击中”,继续检查所有组合是浪费资源的。

Enter numbers WITH SPACES: 4 4 3 12
enter target integer:
16
yes
[(4, 4), (4, 3), (4, 12), (4, 3), (4, 12), (3, 12)]
? kk
[16, 12, 48, 12, 48, 36]
Run Code Online (Sandbox Code Playgroud)

我的预期输出是在第一个“命中”处停止在(4,4)。对于其他任何子集,例如(1,2,3)或(1,2,3 ---任意长度),也是如此。我希望脚本继续执行直到找到匹配为止。一旦找到命中,它将停止,因为这将提高算法的速度。

完整脚本如下

# Naive Subset-Product solver
# with python's itertools

import itertools …
Run Code Online (Sandbox Code Playgroud)

python subset subset-sum

8
推荐指数
1
解决办法
176
查看次数

标签 统计

css ×1

javascript ×1

python ×1

subset ×1

subset-sum ×1