【发布时间】:2014-02-19 08:28:45
【问题描述】:
我有一个包含 288 个值的数组。它包含任意组合的组中的 1 和 0。
例如
[0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0.1]
[1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0...]
[1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1....]
它可以由一组零或一组一开始和结束。但可以保证在数组中至少有一组零或一。我的兴趣是将一组索引的开始和结束的索引存储在一个数组中。例如 start_index 中的第一个示例中的 6,16,23(假设这是要存储的向量)和 end_index 中的 11,19。
我希望这是通用的。因为我的数组可以从任何组开始。
我正在使用以下代码来实现这一点,但我没有成功实现完整的逻辑。每当我认为我被困在如何制作算法时。下面的代码是我写的一小部分,它只处理一种可能性。
std::vector<float>start_index
std::vector<float>end_index
float alter_value = array[0];
for (int i = 0; i < array.size(); i++)
{
if (alter_value == 0)
{
if(array[i+1] != alter_value)
{
start_index.push_back(array[i+1]);
alter_value = array[i+1]; // this makes my alter_value = 1
}
}
}
也许我无法以更好的方式传达我想要的东西。但我希望你能理解。
【问题讨论】:
标签: c++ arrays algorithm search