算法
贪心问题
题意其实就是确保最大值小于等于x 那么怎么让最大值最小呢?就是让a数组小的加上b数组小的
时间复杂度
O(n) for循环输入值, 双指针
JAVA 代码
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int t = sc.nextInt();
while(t-->0){
int n = sc.nextInt();
int x = sc.nextInt();
int[] a = new int[n];
int[] b = new int[n];
for(int i = 0;i<n;i++){
a[i] = sc.nextInt();
}
for(int i = 0;i<n;i++){
b[i] = sc.nextInt();
}
int l = 0;
int r = n-1;
boolean flag = true;
while(l<n){
if(a[l] + b[r]>x){
flag = false;
break;
}
l++;
r--;
}
if(flag){
System.out.println("Yes");
}else{
System.out.println("No");
}
}
}
}