2022蓝桥杯大赛软件类国赛Java大学B组 左移右移 空间换时间+双指针

简介: 2022蓝桥杯大赛软件类国赛Java大学B组 左移右移 空间换时间+双指针


 
 
import java.util.Scanner;
 
public class Main {
   static Scanner sc=new Scanner(System.in);
   public static void main(String[] args) {
      
    int n=sc.nextInt();//数组长度
    int t=sc.nextInt();//操作次数
    int arr[]=new int[n];
    char arr1[] = new char[t];
    int  arr2[] = new int[t];
    int visited[]=new int[n+1];
    
    for(int i = 0 ;i<t ; i++) {
      arr1[i]=sc.next().charAt(0);
      arr2[i]=sc.nextInt();
    }
    
    //双指针
    int i=0;
    int j=n-1;
    
    for(int temp=t-1;temp>=0;temp--) {
      if(visited[arr2[temp]]==-1)continue;
      if(arr1[temp]=='R') {
        arr[j]=arr2[temp];
        j--;
        visited[arr2[temp]]=-1;
      }
      if(arr1[temp]=='L') {
        arr[i]=arr2[temp];
        i++;
        visited[arr2[temp]]=-1;
      }
    }
    int p=1;
    for(int b=0;b<n;b++) {
      if(arr[b]==0) {
        while(visited[p]==-1) {
          p++;
        }
        visited[p]=-1;
        System.out.print(p+" ");
      }
      else System.out.print(arr[b]+" ");
    }
   } 
}
目录
相关文章
|
3天前
|
Java 机器人 程序员
深入理解Java中的类与对象:封装、继承与多态
深入理解Java中的类与对象:封装、继承与多态
|
2天前
|
Java 关系型数据库 开发者
Java编程设计原则:构建稳健、可维护的软件基石
Java编程设计原则:构建稳健、可维护的软件基石
|
2天前
|
存储 Java
心得经验总结:浅谈Java类中的变量初始化顺序
心得经验总结:浅谈Java类中的变量初始化顺序
|
2天前
|
C++
C++职工管理系统(类继承、文件、指针操作、中文乱码解决)
C++职工管理系统(类继承、文件、指针操作、中文乱码解决)
4 0
C++职工管理系统(类继承、文件、指针操作、中文乱码解决)
|
1天前
|
存储 Java API
Java基础之String类
Java的String类是引用类型,用于创建和操作字符串。字符串对象在`java.lang`包中,不可变。创建方式包括字面量和`new`关键字。字符串池存储字符串常量,避免重复。比较字符串用`equals()`(区分大小写)和`equalsIgnoreCase()`(不区分大小写)。`length()`返回长度,`concat()`或`+`拼接,`substring()`截取,`indexOf()`和`lastIndexOf()`查找,`replace()`替换,`split()`分割。这些是常用的字符串API。
6 0
|
1天前
|
Java
Java基础之String类
Java基础之String类
8 0
|
1天前
|
存储 安全 Java
Java.security包中的KeyStore类详解
Java.security包中的KeyStore类详解
6 0
|
1天前
|
Java
技术经验分享:Java_动态加载类(英文)
技术经验分享:Java_动态加载类(英文)
|
2天前
|
存储 Java
一篇文章讲明白JAVA类与对象(六)
一篇文章讲明白JAVA类与对象(六)
|
3天前
|
Java 机器人 关系型数据库
Java中的类与接口:抽象与实现的艺术
Java中的类与接口:抽象与实现的艺术