class Solution {
public:
ListNode* reverseList(ListNode* head) {
ListNode *prev = nullptr;
ListNode *cur = head;
while (cur)
{
ListNode *next = cur->next;
cur->next = prev;
prev = cur, cur = next;
}
return prev;
}
};
#include<iostream>
#include<queue>
using namespace std;
int main(){
int n,m;
cin>>n>>m;
queue<int>nums;
for(int i = 1;i <= n; i++){
nums.push(i);
}
while(true){
for(int i = 0; i <= m-2; i++){
int num;
num = nums.front();
nums.push(num);
nums.pop();
}
cout<<nums.front()<<" ";
nums.pop();
if(nums.empty()){
break;
}
}
return 0;
}
#include<iostream>
#include<queue>
using namespace std;
int main(){
int n;
queue<int>num1;
queue<int>num2;
int x,y,a,b;
cin>>x>>y;
cin>>n;
for(int i = 1; i <= x; i++){
num1.push(i);
}
for(int i = 1; i <= y; i++){
num2.push(i);
}
for(int i = 0; i < n; i++){
a = num1.front();
b = num2.front();
cout<<a<<" "<<b<<endl;
num1.pop();
num2.pop();
num1.push(a);
num2.push(b);
}
return 0;
}
Problem Detail - 【入门】火车编组 - 追梦算法网
#include<stdio.h>
#include<stack>
#include <vector>
#include<iostream>
#include<string.h>
using namespace std;
const int N = 100;
int main()
{
stack<int>nums;
int code[100];
int n,num,t = 1;
cin>>n;
for(int i = 1; i <= n;i++){
cin>>code[i];
nums.push(i);
cout<<"A";
while(!nums.empty()&&nums.top() == code[t]&&t <= i){
cout<<"B";
nums.pop();
t++;
}
}
while(!nums.empty()){
nums.pop();
cout<<"B";
}
return 0;
}
#include <bits/stdc++.h>
using namespace std;
const int N=1e5+7;
int w[N];
int main(){
int t,n;
cin>>t;
while(t--){
cin>>n;
for(int i=0;i<n;i++){
scanf("%d",&w[i]);
}
for(int i=0;i<n;i++){
int flag=0;
for(int j=i-1;j>=0;j--){
if(w[j]<w[i]&&i!=n-1){
flag=1;
cout<<j<<" ";
break;
}
else if(w[j]<w[i]&&i==n-1){
flag=1;
cout<<j;
break;
}
}
if(flag==0&&i!=n-1) cout<<-1<<" ";
else if(flag==0&&i==n-1) cout<<-1;
}
cout<<endl;
}
return 0;
}