小编Ell*_*iot的帖子

Runner技术结合两个相等的链接列表

所以,我在这里面临疑问.

我正在读"Cracking the coding Interview"一书.以下文字写在那里.

假设您有一个链表a1->a2....->an->b1->b2....bn,并且想要将其重新排列a1->b1->a2->b2->.....an->bn.你不知道链表的长度,但你知道的是它是一个偶数.

(这里两个链表长度相同)

对于p2所做的每一次移动,你可以有一个指针p1(快速指针)每两个元素移动一次.当p1命中链表的末尾时,p2将位于端点.然后,将p1移回前面并开始"编织"元素.在每次迭代时,p2选择一个元素并在p1之后插入它.

我不明白当p1到达链表的末尾时,p2将处于中点.如果n = 3(长度= 6),这就是我想象的方式.下面的每个步骤代表一次迭代.

1. a1 (p1, p2)->a2->a3->b1->b2->b3 
2. a1->a2 (p2)->a3 (p1)->b1->b2->b3 
3. a1->a2->a3 (p2)->b1->b2 (p1)->b3 
4. Index out of bounds error because p2 now points to a node after b3.
Run Code Online (Sandbox Code Playgroud)

我错了吗?

algorithm linked-list

15
推荐指数
1
解决办法
5027
查看次数

C++中的比较器功能意味着什么?

bool comp(const pair<int, int>& a, const pair<int,int>& b){
    if (v[a.first]>v[b.first]) {
        return true;
    }
    else if(v[a.first] == v[b.first] && a.second < b.second){
        return true;
    }
    return false;
}
Run Code Online (Sandbox Code Playgroud)

所以,我正在通过一个代码,我遇到了这个比较器函数,用于排序对的向量.现在,我对C++很新.我试着阅读关于这个比较器如何工作的其他问题?但我无法理解.为什么返回类型是bool?返回值true意味着什么?

c++

3
推荐指数
2
解决办法
4391
查看次数

向量中的唯一元素数

如果我有一个浮动向量为{1.2,1.2,1.2,1.3,1.4}并且我必须找出独特元素的数量,我该怎么办呢?

我是C++的新手,我真的不知道如何使用迭代器.谢谢!

编辑:我做了这样的事情:

sort(arra.begin(),arra.end());
    vector <float>::iterator it = arra.begin();
    while ( it != arra.end() )
    {
        temp1 = *it;
        cout<<temp1<<"\n";
        it++;
        while (*it == temp1)
        {
            it++;
            cout<<*it<<"\n";
        }
        count++;
    }
Run Code Online (Sandbox Code Playgroud)

但这给了WA.

c++ algorithm

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

标签 统计

algorithm ×2

c++ ×2

linked-list ×1