持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第7天,点击查看活动详情
1295. 统计位数为偶数的数字:
给你一个整数数组 nums
,请你返回其中位数为 偶数 的数字的个数。
样例 1:
输入:
nums = [12,345,2,6,7896]
输出:
2
解释:
12 是 2 位数字(位数为偶数)
345 是 3 位数字(位数为奇数)
2 是 1 位数字(位数为奇数)
6 是 1 位数字 位数为奇数)
7896 是 4 位数字(位数为偶数)
因此只有 12 和 7896 是位数为偶数的数字
样例 2:
输入:
nums = [555,901,482,1771]
输出:
1
解释:
只有 1771 是位数为偶数的数字。
提示:
- 1 <= nums.length <= 500
- 1 <= nums[i] <= 105
分析
- 面对这道算法题目,二当家的陷入了沉思。
- 需要遍历数组是无疑的。
- 中规中矩的方式可以是将数字转为字符串然后判断长度是否为偶数。但是这样需要创建新的字符串出来。
- 转为字符串是为了快速判断位数,以10为底取对数,有高效的数学函数也是不错的选择。
- 当然根据提示,我们知道每个数字的取值范围,也可以不去计算数字的位数,直接判断取值。
题解
rust
impl Solution {
pub fn find_numbers(nums: Vec<i32>) -> i32 {
nums.iter().filter(|&&num| {
(num >= 10 && num <= 99)
|| (num >= 1000 && num <= 9999)
|| num == 100000
}).count() as i32
}
}
go
func findNumbers(nums []int) int {
ans := 0
for _, num := range nums {
if (num >= 10 && num <= 99) || (num >= 1000 && num <= 9999) || num == 100000 {
ans++
}
}
return ans
}
typescript
function findNumbers(nums: number[]): number {
return nums.filter(num => (num >= 10 && num <= 99)
|| (num >= 1000 && num <= 9999)
|| num == 100000).length;
};
python
class Solution:
def findNumbers(self, nums: List[int]) -> int:
return sum(1 for num in nums if 10 <= num <= 99 or 1000 <= num <= 9999 or num == 100000)
c
int findNumbers(int* nums, int numsSize){
int ans = 0;
for (int i = 0; i < numsSize; ++i) {
if ((nums[i] >= 10 && nums[i] <= 99)
|| (nums[i] >= 1000 && nums[i] <= 9999)
|| nums[i] == 100000) {
++ans;
}
}
return ans;
}
c++
class Solution {
public:
int findNumbers(vector<int>& nums) {
int ans = 0;
for (int num: nums) {
if ((num >= 10 && num <= 99)
|| (num >= 1000 && num <= 9999)
|| num == 100000) {
++ans;
}
}
return ans;
}
};
java
class Solution {
public int findNumbers(int[] nums) {
int ans = 0;
for (int num : nums) {
if ((num >= 10 && num <= 99)
|| (num >= 1000 && num <= 9999)
|| num == 100000) {
++ans;
}
}
return ans;
}
}
原题传送门:https://leetcode.cn/problems/find-numbers-with-even-number-of-digits/
非常感谢你阅读本文~
放弃不难,但坚持一定很酷~
希望我们大家都能每天进步一点点~
本文由 二当家的白帽子:https://juejin.cn/user/2771185768884824/posts 博客原创~