c++ - 有没有办法使用分而治之来计算数组改变符号的次数
问题描述
假设有一个数组 A = {1, -1, 1, 1, 1, -1, 1} 有没有办法使用分治法计算数组元素改变符号的次数?例如:从 -1 到 1 和 1 到 -1。
我试图实现一个解决方案,将数组划分为 2 个子数组并计算左子数组的最后一个元素乘以右子数组的右元素是否小于 0,在这种情况下符号改变了。
这是我试图实现的伪代码:
Find Number of Roots(vector V)
n = V.size()
if n <= 1
return 0
end if
else
number_of_roots = 0
lower_half = Roots(V[1...n/2])
upper_half = Roots(V[n/2+1...n])
if (lower_half.back() * upper_half.front() < 0)
number_of_roots++
return number_of_roots
end else
end program
解决方案
推荐阅读
- javascript - 另一个 addEventListener 回调中的 JavaScript 嵌套 addEventListener 立即触发
- python - Matplotlib:如何在 imshow() 的颜色条上添加一条线
- node.js - 如何将对象发送到 .marko 模板并在表格中动态呈现其属性
- python - 针对动态创建的对象进行类型检查
- python - 如何查看我的程序是如何逐行执行的
- tensorflow - tensorflow 消耗的 GPU 内存是否完全等于所需的
- php - 声明类型提示时,PhpStorm 是否允许跳过 PHPDoc 标记?
- c# - 碰撞时淡出单个粒子?
- clojure - GET 只返回真正的参数(Clojure)
- r - 解析和(取消)转义引号