c++ - 我如何为以特定数字开头和结尾的子集数量编写 O(n) 程序
问题描述
我们采用一个数组,其中每个索引都填充了一些数字。我们想从这个数组中找出以 3 开头并以 7 结尾的子集。
例如:
1,2,5,3,6,7,3,3,7,0,3,4,9,7,8
答案是 8,但我们不必打印出这些子集:
3,6,7
3,6,7,3,3,7
3,6,7,3,3,7,0,3,4,9,7
3,3,7
3,3,7,0,3,4,9,7
3,7
3,7,0,3,4,9,7
3,4,9,7
编码:
int o_n_alg(int arr[], int size)
{
// To fill with O(n) Algorithm
}
int main(){
int size = 1000000;
int *array = new int[size];
int ans_n;
for (int i = 0; i < size; i++)
cin >> array[i];
ans_n = o_n_alg(array, size);
}
谁能帮助我如何填写int o_n_alg(int arr[], int size)
功能?
解决方案
您可能会使用以下内容:
int o_n_alg(int arr[], int size)
{
int result = 0;
int count3 = 0;
for (int i = 0; i != size; ++i) {
if (arr[i] == 3) {
++count3;
} else if (arr[i] == 7) {
result += count3;
}
}
return result;
}
结束7
任何以前3
的 .
推荐阅读
- javascript - 如何仅使用 jQuery 制作动态创建的依赖选择/下拉列表
- c++ - 我在使用 C++ 中的 getline() 函数时遇到问题
- android - 制作主布局比复制粘贴更好的方法吗?
- javascript - Puppeteer 页面不想完全以无头模式加载
- watir - 从 Watir Element 获取硒元素
- vb.net - Visual Studio 如何标记警告
- python - vpython 轴有问题,只接受一个向量,例如 (1,0,0),即一个轴,而不是 (2,2,1)
- uml - PlantUML 和包注释
- powershell - Powershell移动文件但不移动子文件夹
- asp.net - dotnet ModelState 中的验证失败。IsValid 无效,“值 '' 无效。”