2020-6-10
- "Those whom God wishes to destroy, he first makes mad."
------ Euripides
“神欲使之滅亡,必先使 之瘋狂。”
– 希臘悲劇作家 – 歐底庇德斯
題目:
- leetcode – 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] <= 10^5
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/find-numbers-with-even-number-of-digits
著作權歸領釦網絡所有。商業轉載請聯繫官方授權,非商業轉載請註明出處。
個人解答:(C版本)
int findNumbers(int* nums, int numsSize){
if(nums == NULL || numsSize<=0)
return 0;
int event_count = 0;
for(int i; i<numsSize; ++i)
{
int k = nums[i];
int event_num = 0;
while(k)
{
k /=10;
++event_num;
}
if(event_num%2 == 0)
++event_count;
}
return event_count;
}
- 複雜度分析
1)時間複雜度:O(N^2)。
2)空間複雜度:O(1)。
- 運行結果:
#incluide "math.h"
int findNumbers(int* nums, int numsSize){
if (nums == NULL || numsSize<=0)
return 0;
int event_count = 0;
for (int i; i<numsSize; ++i)
{
if (((int)log10(nums[i])+1) % 2 == 0)
++event_count;
}
return event_count;
}
他山之石: