zoukankan      html  css  js  c++  java
  • OJ刷题——等值数目

    题目描述

    已知两个整数数组f[]和g[],它们的元素都已经从小到大排列。例如f[]中可能有1,2,2,3,3,g[]中有1,2,2,2,3。
    请写一个程序,算出这两个数组彼此之间有多少组相同的数据。就以上例而言:
    f[0]于g[0]是第一组;
    f[1]于g[1]是第二组;
    f[2]于g[2]是第三组;
    f[3]于g[4]是第四组。

    输入

    第一行为两个整数m, n(1≤m, n≤1000),分别代表数组f[], g[]的长度。
    第二行有m个元素,为数组f[]。
    第三行有n个元素,为数组g[]。

    输出

    输出等值数目。

    样例输入
    5 5
    1 2 2 2 3
    1 2 2 3 3
    
    样例输出
    4

    附上代码:
    import java.util.Scanner;
    
    public class Main{
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            Scanner scan = new Scanner(System.in);
            int m = scan.nextInt();
            int n = scan.nextInt();
            int f[] = new int[m];
            int g[] = new int[n];
            for(int i = 0;i<m;i++) {
                f[i] = scan.nextInt();
            }
            for(int i = 0;i<n;i++) {
                g[i] = scan.nextInt();
            }
            System.out.println(sumEqual(f,g));
        }
    
        public static int sumEqual(int f[], int g[]) {
            int lenf = f.length;
            int leng = g.length;
            int indexf = 0;
            int indexg = 0;
            int sum = 0;
            while (indexf < lenf && indexg < leng) {
                if (f[indexf] == g[indexg]) {//相等的情况,计数加1,f、g都跳到下一个元素比较
                    sum++;
                    indexf++;
                    indexg++;
                } else if (f[indexf] < g[indexg])//f小,看下一个f
                    indexf++;
                else//f大,看下一个g
                    indexg++;
            }
            return sum;
        }
    }
    
    
    
     
  • 相关阅读:
    分享一个关于Cookie做的实验结果
    使用jest进行单元测试
    【转载】为什么单反镜头做不小,镜头越好越重呢?
    【转载】解读手机摄像头
    【转载】2019中国机器视觉产业全景图谱
    【行业】视觉传感器
    图像质量测评
    COM口了解下
    dbus-python的API及示例
    QtDbus的API及示例
  • 原文地址:https://www.cnblogs.com/lzhxue/p/12730626.html
Copyright © 2011-2022 走看看