Skip to content

Latest commit

 

History

History
180 lines (135 loc) · 3.49 KB

README.md

File metadata and controls

180 lines (135 loc) · 3.49 KB
comments edit_url
true

题目描述

小A 和 小B 在玩猜数字。小B 每次从 1, 2, 3 中随机选择一个,小A 每次也从 1, 2, 3 中选择一个猜。他们一共进行三次这个游戏,请返回 小A 猜对了几次?

输入的guess数组为 小A 每次的猜测,answer数组为 小B 每次的选择。guessanswer的长度都等于3。

 

示例 1:

输入:guess = [1,2,3], answer = [1,2,3]
输出:3
解释:小A 每次都猜对了。

示例 2:

输入:guess = [2,2,3], answer = [3,2,1]
输出:1
解释:小A 只猜对了第二次。

 

限制:

  1. guess 的长度 = 3
  2. answer 的长度 = 3
  3. guess 的元素取值为 {1, 2, 3} 之一。
  4. answer 的元素取值为 {1, 2, 3} 之一。

解法

方法一:遍历

我们同时遍历两个数组,如果对应位置的元素相等,那么答案加一。

时间复杂度 $O(n)$,其中 $n$ 是数组的长度,本题中 $n=3$。空间复杂度 $O(1)$

Python3

class Solution:
    def game(self, guess: List[int], answer: List[int]) -> int:
        return sum(a == b for a, b in zip(guess, answer))

Java

class Solution {
    public int game(int[] guess, int[] answer) {
        int ans = 0;
        for (int i = 0; i < 3; ++i) {
            if (guess[i] == answer[i]) {
                ++ans;
            }
        }
        return ans;
    }
}

C++

class Solution {
public:
    int game(vector<int>& guess, vector<int>& answer) {
        int ans = 0;
        for (int i = 0; i < 3; ++i) {
            ans += guess[i] == answer[i];
        }
        return ans;
    }
};

Go

func game(guess []int, answer []int) (ans int) {
	for i, a := range guess {
		if a == answer[i] {
			ans++
		}
	}
	return
}

TypeScript

function game(guess: number[], answer: number[]): number {
    let ans = 0;
    for (let i = 0; i < 3; ++i) {
        if (guess[i] === answer[i]) {
            ++ans;
        }
    }
    return ans;
}

JavaScript

/**
 * @param {number[]} guess
 * @param {number[]} answer
 * @return {number}
 */
var game = function (guess, answer) {
    let ans = 0;
    for (let i = 0; i < 3; ++i) {
        if (guess[i] === answer[i]) {
            ++ans;
        }
    }
    return ans;
};

C

int game(int* guess, int guessSize, int* answer, int answerSize) {
    int res = 0;
    for (int i = 0; i < 3; i++) {
        if (guess[i] == answer[i]) {
            res++;
        }
    }
    return res;
}

方法二

TypeScript

function game(guess: number[], answer: number[]): number {
    return guess.reduce((acc, cur, index) => (cur === answer[index] ? acc + 1 : acc), 0);
}