小编Yas*_*lik的帖子

给定一个整数N。大于N且仅以0或1为数字的最小整数是什么?

我有一个整数N。我必须找到大于N的最小整数,该整数不包含0或1之外的任何数字。例如:如果N = 12答案为100。我已经用C ++编写了一种蛮力方法。

int main() {
    long long n;
    cin >> n;

    for (long long i = n + 1; ; i++) {
        long long temp = i;
        bool ok = true;
        while (temp != 0) {
            if ( (temp % 10) != 0 && (temp % 10) != 1) {
                ok = false;
                break;
            }
            temp /= 10;
        }
        if (ok == true) {
            cout << i << endl;
            break;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是,我的方法太慢了。我相信有一个非常有效的方法可以解决这个问题。如何有效解决此问题?

c++ algorithm

13
推荐指数
2
解决办法
255
查看次数

如何在对对上使用lower_bound()?

我给了一个std::set<std::pair<int,int>>和一个整数x,我必须找到第一个对的迭代器,该对的第一个元素大于或等于给定的整数x

我了解到,如果sset<pair<int, int>>{x, y}是一对,那么我可以使用s.lower_bound({x, y})。但是,就我而言,我只需要关心第一个元素x。所以,我的问题是如何使用lower_boundset<pair<int, int>>,当我只关心的第一个元素?

c++

7
推荐指数
1
解决办法
517
查看次数

有多个查询时,检查某些子数组是否已排序的有效方法是什么?

假设一个数组A = {5, 4, 3, 7, 9, 11, 2}。有K很多查询。在每个查询中,我将得到两个整数LR其中0 <= L <= R < N(N是数组的大小)。我必须告诉A[L...R]子数组是否已排序。

例如,第一个查询要求我告诉索引0到6(基于0的索引)的子数组是否已排序。答案是,A[0...6]没有排序。然后第二个查询问我是否A[2...5]排序。该子数组已排序。这是我的处理方法。有没有更好的办法?

int main()
{
    int a[7] = { 5, 4, 3, 7, 9, 11, 2}, k = 2;

    for(int i = 1; i <= k; i++)
    {
        int l, r;
        cin >> l >> r;
        bool isSorted = true;
        for(int j = l; j < r; j++)
        {
            if(a[j] …
Run Code Online (Sandbox Code Playgroud)

c++ sorting algorithm

3
推荐指数
1
解决办法
132
查看次数

给定数字N和数组A。检查N是否可以表示为一个或多个数组元素的乘积

给定一个数字N (where N <= 10^18)和一个数组A(consisting of at most 20 elements)。我必须告诉是否可以N通过乘以数组的某些元素来形成。请注意,我可以多次使用任何元素。

示例:N = 8A = {2, 3}。在这里,8 = 2 * 2 * 2。所以答案是YES。但是,如果N = 15,则我无法将15用作一个或多个元素多次使用它们的乘积。因此,在这种情况下,答案是NO

我该如何解决这个问题?

algorithm math

2
推荐指数
1
解决办法
108
查看次数

标签 统计

algorithm ×3

c++ ×3

math ×1

sorting ×1