how notes help me

1.well ,I bought a car in the moring not for me,and i watch 'the big bang' in the afternoon.By the end of afternoon,I've heard some annoying news,I'm getting really angry.

2.considering writing for the others is tired,I'm gonna free myself.From now on,my articals are all my notes.More like a personal note.It may already be like that.

the end;

1.要先证明算法的正确性在写,最好写一下伪代码,或者需要注意的地方,防止写着写着就忘了。比方说不转换十六进制的ABC直接用bitset转换成二进制。比方说下面这道题写完代码都没想为什么这么做是对的,这会出现很多逻辑错误。直到我做了笔记,才想明白为什么这么做是对的。

1021:

1.先将两个序列排序,再从小到大捋

#include <iostream>
#include <algorithm>
using namespace std;

int main()
{
    int m,n;
    int a[2000],b[2000];
    cin>>n;
    for(int i=0;i<n;i++)
        cin>>a[i];
    cin>>m;
    for(int i=0;i<m;i++)
        cin>>b[i];
        sort(a,a+n);
        sort(b,b+m);
        int i=0;
        int j=0;
    while(i<n&&j<m)
    {
        if(a[i]==b[j]){
            cout<<a[i]<<" ";
            i++;j++;

        }
        else if(a[i]<b[j])
            i++;
        else
            j++;

    }
    cout<<endl;
    i=0;
    j=0;
    while(i<n||j<m)
    {
        if(a[i]<b[j]&&i<n){
            cout<<a[i]<<" ";
            i++;
        }
        else if(a[i]>b[j]&&j<m)
        {
            cout<<b[j]<<" ";
            j++;
        }
        else if(a[i]==b[j]&&i<n&&j<m)
        {
            cout<<a[i]<<" ";
            i++;
            j++;
        }
        else
        {
            for(;i<n;i++)
                cout<<a[i]<<" ";

            for(;j<m;j++)
                cout<<b[j]<<" ";
        }
    }
    cout<<endl;
    i=0;
    j=0;
    while(i<n)
    {
        if(a[i]<b[j])
        {
            cout<<a[i]<<" ";
            i++;
        }
        else if(a[i]>b[j])
            j++;
            else
            {
                i++;
                j++;
            }
    }
    return 0;
}

注意一点,就是ij要每一次计算都要初始化为0.

还有就是中间这个while的逻辑被我弄的很乱,因为结尾小的序列输出了,我却不管结尾大的序列,因为越界的数组会是0,那么结尾大的永远没机会输出结尾。

所以要保证不越界输出,还要保证结尾大的能够输出。例子{1}{4}实际是{1 0 0 0 0...}{4 0 0 0 0...}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值