宝宝也能看懂的 leetcode 周赛 - 168 - 1
2019/12/28 0:24:56
本文主要是介绍宝宝也能看懂的 leetcode 周赛 - 168 - 1,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
宝宝也能看懂的 leetcode 周赛 - 168 - 1
Hi 大家好,我是张小猪。欢迎来到『宝宝也能看懂』系列之 leetcode 题解。
这里是第 168 期的第 1 题,也是题目列表中的第 1295 题 -- 『Find Numbers with Even Number of Digits』
题目描述
Given an array nums
of integers, return how many of them contain an even number of digits.
Example 1:
Input: nums = [12,345,2,6,7896] Output: 2 Explanation: 12 contains 2 digits (even number of digits). 345 contains 3 digits (odd number of digits). 2 contains 1 digit (odd number of digits). 6 contains 1 digit (odd number of digits). 7896 contains 4 digits (even number of digits). Therefore only 12 and 7896 contain an even number of digits.
Example 2:
Input: nums = [555,901,482,1771] Output: 1 Explanation: Only 1771 contains an even number of digits.
Constraints:
1 <= nums.length <= 500 1 <= nums[i] <= 10^5
官方难度
EASY
解决思路
题目内容很简单,就是返回数组中长度为偶数的数字的数量。顺着思路,很容易就能想到最直接方案,也就是对于数组里的每一个数字,获取它的长度,然后做判断即可。
直接方案
基于以上思路,那么接下来问题便是如何获取长度呢?
一种方式,想到长度可能会联想到字符串,而 JS 中数字转化为字符串很容易。于是我们得到第一种实现代码。
const findNumbers = nums => { let ret = 0; for (let i = 0; i < nums.length; ++i) { (nums[i].toString().length & 1) === 0 && ++ret; } return ret; };
另一种方式,我们也可以直接基于数字计算得到对应的长度。这里用到了几个简单的位运算来做处理,当然也可以不用,替换为相应的其他方式即可。
const findNumbers = nums => { let ret = 0; for (let i = 0; i < nums.length; ++i) { let len = 0; for (let val = nums[i]; val > 0; ++len) { val = val / 10 >> 0; } (len & 1) === 0 && ++ret; } return ret; };
换个思路
做到这里其实本来也差不多了,正打算收尾的时候,突然注意到限制条件里给出的每个数字的取值范围 [1, 10^5]
。
乍一看好像挺大,然而我们这里是要长度为偶数的数字,其实在范围内的也就两段 [10, 99]
和 [1000, 9999]
。这下好了,也不用取长度了,直接判断范围即可。
const findNumbers = nums => { let ret = 0; for (let i = 0; i < nums.length; ++i) { const val = nums[i]; ((val > 9 && val < 100) || (val > 999 && val < 10000)) && ++ret; } return ret; };
打完收工,作为周赛的第一题,拿回保底的分。
相关链接
这篇关于宝宝也能看懂的 leetcode 周赛 - 168 - 1的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-23DevExpress 怎么实现右键菜单(Context Menu)显示中文?-icode9专业技术文章分享
- 2024-12-22怎么通过控制台去看我的页面渲染的内容在哪个文件中呢-icode9专业技术文章分享
- 2024-12-22el-tabs 组件只被引用了一次,但有时会渲染两次是什么原因?-icode9专业技术文章分享
- 2024-12-22wordpress有哪些好的安全插件?-icode9专业技术文章分享
- 2024-12-22wordpress如何查看系统有哪些cron任务?-icode9专业技术文章分享
- 2024-12-21Svg Sprite Icon教程:轻松入门与应用指南
- 2024-12-20Excel数据导出实战:新手必学的简单教程
- 2024-12-20RBAC的权限实战:新手入门教程
- 2024-12-20Svg Sprite Icon实战:从入门到上手的全面指南
- 2024-12-20LCD1602显示模块详解