壹 ❀ 引

今天来做一道简单到让我一度怀疑题目本意的题目,题目来自leetcode LCP 01. 猜数字,题目描述如下:

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

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

示例 1:

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

示例 2:

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

限制:

guess的长度 = 3

answer的长度 = 3

guess的元素取值为 {1, 2, 3} 之一。

answer的元素取值为 {1, 2, 3} 之一。

我们简单分析题目,来说说怎么实现它!

贰 ❀ 思路分析

首先,题目说小A与小B每次都是从1,2,3中随机选择一个数字进行对比,一共比较三次,我第一感觉就是得算数两个数组比较的所有可能性。

但当我看了2个例子,我就懵了,为啥guess与answer完全一样时小A就猜对了三次,当guess与answer只有索引为1的元素相同时小A只猜对了第二次。可见题目本意就是想我们按顺序依次比较元素,直到比较完成看有几次相等而已(这真的是我在leetcode遇到最简单的题目了)。

使用一次遍历来解决:

/**
* @param {number[]} guess
* @param {number[]} answer
* @return {number}
*/
var game = function (guess, answer) {
let sum = 0,
k = guess.length - 1;
while (k >= 0) {
if (guess[k] === answer[k]) {
sum++;
};
k--;
};
return sum;
};

使用两次遍历来解决:

/**
* @param {number[]} guess
* @param {number[]} answer
* @return {number}
*/
var game = function (guess, answer) {
let sum = 0;
for(let i = 0;i < guess.length;i++ ){
for(let j = 0;j < answer.length;j++){
// 索引相同,且元素相同则自增
if(guess[i] === answer[j] && i === j){
sum++;
};
};
};
return sum;
};

再或者,不用遍历,来自评论区的暴力解题法:

/**
* @param {number[]} guess
* @param {number[]} answer
* @return {number}
*/
var game = function (guess, answer) {
return (guess[0] === answer[0]) + (guess[1] === answer[1]) + (guess[2] === answer[2]);
};

这里正是利用布尔值在计算中,true会转换成1,false转换成为0的特性,不得不佩服网友的脑洞...

由于这题很简单,那么就说到这了。

JS leetcode 猜数字 题解分析,我以为题目在第八层我在第一层,其实我在第三层题目在第一层的更多相关文章

  1. HDU 2178.猜数字【分析能力练习】【读题能力练习】【8月10】

    猜数字 Problem Description A有1数m.B来猜.B每猜一次,A就说"太大"."太小"或"对了" . 问B猜n次能够猜到的 ...

  2. 详解 leetcode 猜数字大小 II

    375. 猜数字大小 II 原题链接375. 猜数字大小 II 题目下方给出了几个提示: 游戏的最佳策略是减少最大损失,这引出了 Minimax 算法,见这里,和这里 使用较小的数开始(例如3),看看 ...

  3. js简易猜数字

    Title #div1{ width:400px; height:400px; border:1px solid red; } h1{ width:400px; height:20px; } b#co ...

  4. 力扣(LeetCode)猜数字大小 个人题解

    我们正在玩一个猜数字游戏. 游戏规则如下:我从 1 到 n 选择一个数字. 你需要猜我选择了哪个数字.每次你猜错了,我会告诉你这个数字是大了还是小了.你调用一个预先定义好的接口 guess(int n ...

  5. Leetcode之二分法专题-374. 猜数字大小(374. Guess Number Higher or Lower)

    Leetcode之二分法专题-374. 猜数字大小(374. Guess Number Higher or Lower) 我们正在玩一个猜数字游戏. 游戏规则如下:我从 1 到 n 选择一个数字. 你 ...

  6. 不一样的猜数字游戏 — leetcode 375. Guess Number Higher or Lower II

    好久没切 leetcode 的题了,静下心来切了道,这道题比较有意思,和大家分享下. 我把它叫做 "不一样的猜数字游戏",我们先来看看传统的猜数字游戏,Guess Number H ...

  7. C#版 - Leetcode 201. 数字范围按位与(bitwise AND) - 题解

    C#版 - Leetcode 201. 数字范围按位与(bitwise AND) - 题解 在线提交: https://leetcode.com/problems/bitwise-and-of-num ...

  8. [LeetCode] 375. Guess Number Higher or Lower II 猜数字大小 II

    We are playing the Guess Game. The game is as follows: I pick a number from 1 to n. You have to gues ...

  9. js 学习一 猜数字游戏

    知识点 js 操作元素 增 (document.createElement(),document.body.appendChild()), 删(parentNode.removeChild()) ,改 ...

  10. [LeetCode]LCP 01. 猜数字

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

随机推荐

  1. java基础-反射-day15

    目录 1. 案例引入 2. Class 的理解 3. 反射的详细使用 4. Class 类都有哪些实例 5. 详细使用 6. 获取属性 7. 获取方法 8 获取类的 接口 注解 所在的包 9. 思考 ...

  2. NSSCTF Round#11 Basic 密码个人赛复盘

    [NSSRound#11 Basic]ez_enc ABAABBBAABABAABBABABAABBABAAAABBABABABAAABAAABBAABBBBABBABBABBABABABAABBAA ...

  3. [转帖]命令行参数--与-D的区别

    https://juejin.cn/post/7238420276228341815   Spring Boot 学习笔记 我们要想了解这两者之间的差异,首先来看一个案例:   bash 复制代码 # ...

  4. [转帖]SQL SERVER中什么情况会导致索引查找变成索引扫描

    https://www.cnblogs.com/kerrycode/p/4806236.html SQL Server 中什么情况会导致其执行计划从索引查找(Index Seek)变成索引扫描(Ind ...

  5. [转帖]Oracle数据库中ITL详解

    首先说明这篇文章是转载的,原文地址:http://blog.sina.com.cn/s/blog_616b428f0100lwvq.html 1.什么是ITL ITL(Interested Trans ...

  6. 【转帖】8.JVM双亲委派机制(面试常问)

    目录 1.什么是双亲委派机制? 2.双亲委派机制的优势 3.沙箱安全机制 1.什么是双亲委派机制? 双亲委派机制工作原理:(面试) 1.如果一个类加载器收到了类加载请求,它并不会自己先去加载,而是把这 ...

  7. [转帖]ARMv8架构概述、相关技术文档以及ARMv8处理器简介

    ARMv8架构 文章目录 ARMv8架构 参考文档 ARMv8架构的概述 从32位到64位的变化The changes from 32 bits to 64 bits 1,Larger registe ...

  8. 谈JVM参数GC线程数ParallelGCThreads合理性设置

    作者:京东零售 刘乐 导读:本篇文章聚焦JVM参数GC线程数的合理配置,从ParallelGCThreads参数含义.参数设置,到参数实验以及修改意见进行解析. 1. ParallelGCThread ...

  9. rust入坑指南之ownership

    作者:京东零售 王梦津 I. 前言 Rust,不少程序员的白月光,这里我们简单罗列一些大牛的评价. Linus Torvalds:Linux内核的创始人,对Rust的评价是:"Rust的主要 ...

  10. React中useEffect、useCallBack、useLayoutEffect

    在函数中使用定时器 import { useEffect, useState } from "react"; export default function Funcom() { ...