Java刷题应用实例总结

Java刷题应用实例总结:

T1:ArrayList

ArrayList 类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元素。

例题:Acwing 791. 高精度加法

import java.util.Scanner;
import java.util.ArrayList;
public class Acwing791 {
	static ArrayList<Integer> add(ArrayList<Integer> a,ArrayList<Integer> b){
		int t=0;
		ArrayList<Integer> c=new ArrayList<Integer>();
		for(int i=0;i<a.size()||i<b.size();i++) {
			if(i<a.size()) t+=a.get(i);//取出元素
			if(i<b.size()) t+=b.get(i);
			c.add(t%10);
			t/=10;
		}
		if(t>0) c.add(1);
		return c;
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner in=new Scanner(System.in);
		String a,b;
		a=in.next();
		b=in.next();
		ArrayList<Integer> va=new ArrayList<Integer>();//定义类
		ArrayList<Integer> vb=new ArrayList<Integer>();
		for(int i=a.length()-1;i>=0;i--) va.add(a.charAt(i)-'0');//添加元素
		for(int i=b.length()-1;i>=0;i--) vb.add(b.charAt(i)-'0');
		ArrayList<Integer> vc=add(va,vb);
		for(int i=vc.size()-1;i>=0;i--) System.out.printf("%d",vc.get(i));
	}

}

T2:HashMap

HashMap 是一个散列表,它存储的内容是键值对(key-value)映射。

HashMap 实现了 Map 接口,根据键的 HashCode 值存储数据,具有很快的访问速度,最多允许一条记录的键为 null,不支持线程同步。

HashMap 是无序的,即不会记录插入的顺序。

例题:Acwing 799 最长连续不重复子序列

import java.util.HashMap;
import java.util.Scanner;

public class Acwing799 {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner in=new Scanner(System.in);
		int n;
		n=in.nextInt();
		int[] a=new int[n+1];
		for(int i=1;i<=n;i++) {
			a[i]=in.nextInt();
		}
		HashMap<Integer,Integer> mp=new HashMap<Integer,Integer>();//定义类
		int ans=0;
		for(int i=1,j=1;i<=n;i++) {
			mp.put(a[i], mp.getOrDefault(a[i], 0)+1);//如果不存在则设为默认值0
			while(j<=i&&mp.get(a[i])>1) {
				mp.put(a[j], mp.get(a[j])-1);//插入元素
				j++;
			}
			ans=Math.max(ans, i-j+1);
		}
		System.out.println(ans);
	}

}

T3:排序

Collection.sort()

import java.util.Scanner;
import java.util.ArrayList;
import java.util.Collections;
public class Sort {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		ArrayList<Integer> s=new ArrayList<Integer>();
		Scanner in=new Scanner(System.in);
		int n=in.nextInt();
		for(int i=0;i<n;i++) {
			int t=in.nextInt();
			s.add(t);
		}
		Collections.sort(s);
		for(int i:s) {
			System.out.printf("%d ",i);
		}
	}

}

更多用法:

import java.util.HashMap;
import java.util.Scanner;

public class text {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner in=new Scanner(System.in);
		int n;
		n=in.nextInt();
		int[] a=new int[n];
		for(int i=0;i<n;i++) a[i]=in.nextInt();
		HashMap<Integer,Integer> mp=new HashMap<Integer,Integer>();
		for(int t:a) {
			mp.put(t, mp.getOrDefault(t, 0)+1);
		}
		int q;
		q=in.nextInt();
		while(q-->0) {
			int t=in.nextInt();
			if(mp.getOrDefault(t, 0)>0) {
				System.out.println("Yes");
			}else {
				System.out.println("No");
			}
		}
		System.out.println(mp);
	}

}

T4:Pair

class pair{
	public int i;
	public int j;
	pair(int i,int j) {
		this.i=i;
		this.j=j;
	}
}

T5:结构体排序

import java.util.*;
class stu implements Comparable<stu>{
	String name;
	int time;
	public stu(String name,int time){
		this.name=name;
		this.time=time;
	}
	public int compareTo(stu o) {
		return time-o.time;
	}
}
public class classsort {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner in=new Scanner(System.in);
		int n,k;
		n=in.nextInt();
		k=in.nextInt();
		stu[] a=new stu[n];
		for(int i=0;i<n;i++) {
			String s;
			int t;
			s=in.next();
			t=in.nextInt();
			a[i]=new stu(s,t);
		}
		Arrays.sort(a,0,n);
		System.out.print(a[k-1].name);
	}

}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值