# 1、双指针算法
# AcWing 791. 高精度加法
import java.util.*;
//ACWing
public class Main {
public static void main(String[] args) {
Main main = new Main();
main.chonfu();
}
//最长不重复连续子序列
void chonfu() {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int[] a = new int[n];
int[] nums = new int[100010];
int res=0;
for (int i = 0; i < n; i++)
a[i] = scanner.nextInt();
for (int i = 0, j = 0; i < n; i++) {
nums[a[i]]++;
while(nums[a[i]]>1){
nums[a[j]]--;
j++;
}
res=Math.max(res,i-j+1);
}
System.out.println(res);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import java.util.*;
//ACWing
public class Main {
public static void main(String[] args) {
Main main = new Main();
main.mubiaohe();
}
//数组元素的目标和
void mubiaohe() {
Scanner scanner=new Scanner(System.in);
int n=scanner.nextInt(),m= scanner.nextInt(), x= scanner.nextInt();
int A[]=new int[n];
int B[]=new int[m];
for (int i = 0; i < A.length; i++) {
A[i]=scanner.nextInt();
}
for (int i = 0; i < B.length; i++) {
B[i]=scanner.nextInt();
}
//AB均为严格的单调递增
int i,j;
for (i = 0,j=m-1; i < n; i++) {
while(j>=0&&A[i]+B[j]>x) j--;
if(A[i]+B[j]==x) break;
}
System.out.println(i+" "+j);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import java.util.*;
//ACWing
public class Main {
public static void main(String[] args) {
Main main = new Main();
main.mubiaohe();
}
//判断子序列
void mubiaohe() {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt(), m = scanner.nextInt();
int a[] = new int[n];
int b[] = new int[m];
for (int i = 0; i < n; i++)
a[i] = scanner.nextInt();
for (int i = 0; i < m; i++)
b[i] = scanner.nextInt();
int i=0,j=0;
while(j<m){
if(i<n&&a[i]==b[j]) i++;
j++;
}
if(i==n){
System.out.println("Yes");
}else{
System.out.println("No");
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31