将以下内容翻译为中文:C++ 查询以回答给定索引左侧的1和0的数量

将以下内容翻译为中文:c++ 查询以回答给定索引左侧的1和0的数量

讨论一个问题来回答对给定数组的查询。例如,对于每个查询索引,我们需要查找索引左侧的 1 和 0 的数量。

Input: arr[ ] = { 0, 1, 1, 1, 0, 0, 0, 1, 0, 0}, queries[ ] = { 2, 4, 1, 0, 5 }Output:query 1: zeros = 1,ones = 1query 2: zeros = 1,ones = 3query 3: zeros = 1,ones = 0query 4: zeros = 0,ones = 0query 5: zeros = 2,ones = 3Input: arr[ ] = { 0, 0, 1, 1, 1, 0, 1, 0, 0, 1 }, queries[ ] = { 3, 2, 6 }Output:query 1: zeros = 2,ones = 1query 2: zeros = 2,ones = 0query 3: zeros = 3,ones = 3

登录后复制

寻找解决方案的方法

天真的方法

解决这个问题的简单方法是遍历数组到查询的索引并检查每个元素;如果为 0,则将零计数器加 1,否则将个计数器加 1。

示例

#include using namespace std;int main(){    int nums[] = {1, 0, 0, 1, 1, 0, 0, 1, 0, 0};    int queries[] =  { 2, 4, 1, 0, 5 };    int qsize = sizeof(queries) / sizeof(queries[0]);    int zeros=0,ones=0;    // loop for running each query.    for(int i = 0;i

输出

query 1: zeros = 1,ones = 1query 2: zeros = 2,ones = 2query 3: zeros = 0,ones = 1query 4: zeros = 0,ones = 0query 5: zeros = 2,ones = 3

登录后复制

高效方法

在之前的方法中,每次我们都从第 0 个索引开始计算新查询的 1 和 0。

另一种方法是首先计算 0 和 1。出现在每个索引的左侧,将它们存储在数组中,并根据查询中写入的索引返回答案。

立即学习“C++免费学习笔记(深入)”;

示例

#include using namespace std;int main(){    int nums[] = {1, 0, 0, 1, 1, 0, 0, 1, 0, 0};    int queries[] =  { 2, 4, 1, 0, 5 };    int n = sizeof(nums) / sizeof(nums[0]);    int arr[n][2];    int zeros = 0, ones = 0;    // traverse through the nums array.    for (int i = 0; i 

输出

query 1: zeros = 1,ones =1query 2: zeros = 2,ones =2query 3: zeros = 0,ones =1query 4: zeros = 0,ones =0query 5: zeros = 2,ones =3

登录后复制

结论

在本教程中,我们讨论了为给定数组中的每个查询返回索引左侧的 1 和 0 的数量。我们讨论了解决这个问题的简单方法和有效方法。我们还讨论了解决此问题的 C++ 程序,我们可以使用 C、Java、Python 等编程语言来实现。我们希望本教程对您有所帮助。

以上就是将以下内容翻译为中文:C++ 查询以回答给定索引左侧的1和0的数量的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2585141.html

(0)
上一篇 2025年3月6日 14:58:35
下一篇 2025年3月6日 14:58:41

AD推荐 黄金广告位招租... 更多推荐

相关推荐

发表回复

登录后才能评论