編程題:
1.輸入某年某月某日胁艰,判斷這一天是這一年的第幾天蜜徽?
// 判斷是否為閏年
function isRun(a) {
return a % 4 == 0 && a % 100 != 0 || a % 400 == 0
}
// 判斷是這一年的第幾天
function daysNum(year,month,day) {
var months = [31,28,31,30,31,30,31,31,30,31,30,31];
if(month ==1) {
return day;
}
for(var i = 0; i < month-1; i++) {
day += months[i]
}
if(isRun(year) && month >2) {
day ++
}
return day
}
2.尋找多數(shù)元素
設(shè)計(jì)一個(gè)方法,在一個(gè)數(shù)組中尋找占大多數(shù)的元素(如果存在的話)顽耳,如果這樣的元素不存在坠敷,就輸出“沒(méi)有元素占大多數(shù)”。
占大多數(shù)的元素的定義為:如果一個(gè)數(shù)組A的長(zhǎng)度為n射富,某一個(gè)元素在數(shù)組中的數(shù)量大于n/2膝迎,這個(gè)元素即為占大多數(shù)的元素。(簡(jiǎn)單推理可知胰耗,一個(gè)數(shù)組最多有一個(gè)元素為占大多數(shù)的元素)
附加要求:時(shí)間復(fù)雜度越小越好
例子:
輸入:[3,3,4,2,4,4,2,4,4]
輸出:4
// 一共5個(gè)4限次,超過(guò)數(shù)組長(zhǎng)度的一半
Input:[3,3,4,2,4,4,2,4,]
Output:沒(méi)有元素占大多數(shù)
function SelectNum(arr) {
let len = arr.length;
var json = {};
for (let i = 0; i < len; i++) {
if (json[arr[i]] == undefined) {
json[arr[i]] = 1;
} else {
json[arr[i]] += 1
}
}
for (let a in json) {
if (json[a] > len / 2) {
return a
}
}
return '沒(méi)有元素占大多數(shù)'
}