两道题全AC #include <iostream> #include <string> #include <set> using namespace std; int main1() {     int n1, n2;     cin >> n1 >> n2;     int num = 0;     if (n1 > n2)         num++;     while (cin >> n1)     {         if (n2 > n1)         {             num++;             n2 = n1;         }         if (num > 1)         {             cout << "No" << endl;             break;         }             else         {             cout << "Yes" << endl;             break;         }     }     system("pause");     return 0; } int main() {     string s = "4/1-20,30-52,100";     int hashsize = 0;     bool flag = false;     int key1[1000]{ 0 };//存储区间值     int key[1000]{ 0 }; //存储单个值     int index1 = 0;     int index2 = 0;     int num = 0;     int len = s.length();     for (int i = 0; i < len; i++)     {                  if (s[i] == '/')         {             hashsize = num;             num = 0;         }         else if(s[i] == '-')         {             key1[index1++] = num;             flag = true;             num = 0;         }         else if( s[i] == ',')         {             if (flag)             {                 key1[index1++] = num;                 flag = false;                 num = 0;             }             else             {                 key[index2++] = num;                 num = 0;             }         }         else         {             num *= 10;             num += (s[i] - '0');         }     }     if (flag)         key1[index1++] = num;     else         key[index2++] = num;     set<int> st[100];     for (int i = 0; i < index1; i += 2)     {         for (int j = key1[i]; j <= key1[i + 1]; j++)         {             int m = j % hashsize;             st[m].insert(j);         }     }     for (int i = 0; i < index2; i++)     {         int m = key[i] % hashsize;         st[m].insert(key[i]);     }     cout << endl;     int max = 0;     int maxindex = 0;     for (int i = 0; i < 100; i++)     {         if (st[i].size() > max)         {             max = st[i].size();             maxindex = i;         }     }     cout << max << "-" << maxindex << "-";     for (set<int>::reverse_iterator it = st[maxindex].rbegin(); it != st[maxindex].rend(); it++)     {         if(it == --st[maxindex].rend())             cout << *it;         else             cout << *it << " ";     }     system("pause");     return 0; }
点赞 3

相关推荐

敢逐云霄志:你打招呼语怎么能这么长,hr都没看下去的欲望,简明扼要说重点,就读于某某学校某某专业,26届应届毕业生,学信网可查,先后在某某公司实习过(如有),然后做过什么项目,想找一份什么样的工作,可实习几个月以上,期待您的回复。
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务