阅读 76

C++ 程序在把一个放在另一个里面后找到可见框的数量

为了解决一个问题,在这个问题中,我们得到一个包含盒子大小的数组。现在我们得到了一个条件,如果大盒子的大小至少是小盒子的两倍,我们可以把一个小盒子放在一个大盒子里。例如,现在我们必须确定有多少可见框。


Input : arr[] = { 1, 3, 4, 5 }Output : 3Put a box of size 1 in the box of size 3.Input : arr[] = { 4, 2, 1, 8 }Output : 1


寻找解决方案的方法

在这个问题中,我们的方法是随着我们的前进现在对我们的数组进行排序。我们现在将元素推入队列。随着我们的进展,我们将查看当前元素是否大于或等于队列前端元素的两倍。如果为真,我们现在弹出前面的元素。最后,我们推送队列中的当前元素。我们的答案将是最终队列的大小。

示例


#include <bits/stdc++.h>using namespace std;int main(){
    int arr[] = { 1, 2, 3, 4, 5, 6 }; // 给定包含我们盒子大小的数组    int n = sizeof(arr) / sizeof(arr[0]); // 我们数组的大小    queue<int> q;
    sort(arr, arr + n); // 排序我们的数组    q.push(arr[0]); // 将最小的元素推到前面    for (int i = 1; i < n; i++) { // 遍历数组        int curr = q.front(); // 当前元素        if (arr[i] >= 2 * curr) // 如果当前框的大小大于两倍                               // 前面的盒子,所以我们弹出前面            q.pop();

        q.push(arr[i]); // 推送队列中的当前元素    }
    cout << q.size() << "\n"; // 我们的回答    return 0;
}

输出结果

3


结论

在本教程中,我们解决了一个问题,即在将一个框放入另一个框后找到可见框的数量。我们还学习了针对此问题的 C++ 程序以及解决此问题的完整方法(Normal)。我们可以用其他语言编写相同的程序,例如 C、java、python 和其他语言。我们希望本教程对您有所帮助。


文章分类
百科问答
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐