JS leetcode 猜数字 题解分析,我以为题目在第八层我在第一层,其实我在第三层题目在第一层
壹 ❀ 引
今天来做一道简单到让我一度怀疑题目本意的题目,题目来自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 猜数字 题解分析,我以为题目在第八层我在第一层,其实我在第三层题目在第一层的更多相关文章
- HDU 2178.猜数字【分析能力练习】【读题能力练习】【8月10】
猜数字 Problem Description A有1数m.B来猜.B每猜一次,A就说"太大"."太小"或"对了" . 问B猜n次能够猜到的 ...
- 详解 leetcode 猜数字大小 II
375. 猜数字大小 II 原题链接375. 猜数字大小 II 题目下方给出了几个提示: 游戏的最佳策略是减少最大损失,这引出了 Minimax 算法,见这里,和这里 使用较小的数开始(例如3),看看 ...
- js简易猜数字
Title #div1{ width:400px; height:400px; border:1px solid red; } h1{ width:400px; height:20px; } b#co ...
- 力扣(LeetCode)猜数字大小 个人题解
我们正在玩一个猜数字游戏. 游戏规则如下:我从 1 到 n 选择一个数字. 你需要猜我选择了哪个数字.每次你猜错了,我会告诉你这个数字是大了还是小了.你调用一个预先定义好的接口 guess(int n ...
- Leetcode之二分法专题-374. 猜数字大小(374. Guess Number Higher or Lower)
Leetcode之二分法专题-374. 猜数字大小(374. Guess Number Higher or Lower) 我们正在玩一个猜数字游戏. 游戏规则如下:我从 1 到 n 选择一个数字. 你 ...
- 不一样的猜数字游戏 — leetcode 375. Guess Number Higher or Lower II
好久没切 leetcode 的题了,静下心来切了道,这道题比较有意思,和大家分享下. 我把它叫做 "不一样的猜数字游戏",我们先来看看传统的猜数字游戏,Guess Number H ...
- C#版 - Leetcode 201. 数字范围按位与(bitwise AND) - 题解
C#版 - Leetcode 201. 数字范围按位与(bitwise AND) - 题解 在线提交: https://leetcode.com/problems/bitwise-and-of-num ...
- [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 ...
- js 学习一 猜数字游戏
知识点 js 操作元素 增 (document.createElement(),document.body.appendChild()), 删(parentNode.removeChild()) ,改 ...
- [LeetCode]LCP 01. 猜数字
小A 和 小B 在玩猜数字.小B 每次从 1, 2, 3 中随机选择一个,小A 每次也从 1, 2, 3 中选择一个猜.他们一共进行三次这个游戏,请返回 小A 猜对了几次? 输入的guess数组为 小 ...
随机推荐
- java进阶(5)--package与import
一.package 1.package的作用:为了方便程序的管理 2.package怎么使用:package+包名,只能出现在java代码的第一行 3.package命令规范:一般采用公司域名倒序方式 ...
- Dubbo入门2:Springboot+Dubbo2.6.0+ZooKeeper3.4.8整合
整合Springboot+Dubbo2.6.0+ZooKeeper3.4.8 本文主要目的:记录整合以上3个框架的配置文件的写法 此文只在<Dubbo入门1>的基础上略作修改,仅记录修改的 ...
- 6. 配置项:relabel_config
6.1relabel_config的位置 6.2 relabel_config参数详解 1.replace 2. keep 3.drop 6.labelkeep 7.hashmod 6.3 正则表达式 ...
- 基于AHB_BUS SRAM控制器的设计-01
基于AHB Bus SRAM控制器的设计 1.课程目标 接到一个需求要设计SRAM或者I-cache等,需要问后端要一个Memory Memory Compiler是由后端工程师完成的,Memory ...
- 【C++】const 常类型
常引用 格式:const 类型说明符 &引用名 注意:常引用所引用的对象不能修改 常对象 格式:类名 const 对象名 或 const 类名 对象名 注意:常对象其数据成员在生存期内不能修改 ...
- bootstrap : 解决使图片全屏显示有空白边距的问题
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8 ...
- [转帖]【oracle】oracle查询表存储大小和表空间大小
目录 查看表分配的物理空间大小 查看表实际存储空间大小 查看每个表空间的大小 查看表空间大小及使用率 查看数据库中数据文件信息 查看临时表空间信息 oracle表大小有两种含义,即表分配的空间大小和实 ...
- [转帖]OJDBC版本区别 [ojdbc14.jar,ojdbc5.jar和ojdbc6.jar的区别]
classes12.jar,ojdbc14.jar,ojdbc5.jar和ojdbc6.jar的区别,之间的差异 在使用Oracle JDBC驱动时,有些问题你是不是通过替换不同版本的Oracle ...
- [转帖]tidb之旅——tidb架构选择
https://zhuanlan.zhihu.com/p/641650168 前言 从4月份开始利用tidb改造了我们公司bi系统.这个过程中,我感觉到了tidb的强大.也打算记录一下整个改造过程.我 ...
- [转帖]echo “新密码”|passwd --stdin 用户名
https://www.cnblogs.com/rusking/p/6912809.html --stdin This option is used to indicate that passwd s ...