17106合并数列
- 软件开发
- 2025-09-18 06:15:02

17106合并数列
⭐️难度:困难 2023,国赛,模拟 🌟考点:双指针
📖
📚
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int m = sc.nextInt(); int[] a = new int[n+1]; int[] b = new int[m+1]; for (int i = 0; i < n; i++) { a[i] = sc.nextInt(); } for (int i = 0; i < m; i++) { b[i] = sc.nextInt(); } int i = 0,j = 0; int ans = 0; while(i < n && j < m){ if(a[i] == b[j]){ i ++; j ++; }else if(a[i] < b[j]){ a[i + 1] += a[i]; ans ++; i ++; }else if(b[j] < a[i]){ b[j + 1] += b[j]; ans ++; j++; } } System.out.println(ans); } }因为两个数组要一模一样,所以从第一位开始就要一样,用双指针,不一样的话就让较小的数与后面合并,再小就再合并,直到两个指针指到的数字一样再一起前进。