陣列中超過一半的數字 js

2021-09-23 20:54:09 字數 662 閱讀 8725

陣列中有乙個數字出現的次數超過陣列長度的一半,請找出這個數字。例如輸入乙個長度為9的陣列。由於數字2在陣列**現了5次,超過陣列長度的一半,因此輸出2。如果不存在則輸出0。

第一種是新建乙個空物件來儲存陣列中數字出現的次數;遍歷該,如果該數字出現過,則obj中以該數字為key的value加1;若該數字未出現過,則obj中以該數字為key的value設為1;遍歷obj物件,返回value大於陣列長度一半的key,即為所求數字。

第二種是對該陣列進行排序,用sort,然後求中位數。但是在提交的時候,如果有9個數字,但是只出現了4次,那也會返回,所以這個方法並不能通過所有測試用例。

function

morethanhalfnum_solution

(numbers)

;var len = numbers.length;

numbers.

foreach

(function

(s)else})

for(

var i in obj)

}return0;

}//第二種(不能通過所有測試用例)

function

morethanhalfnum_solution

(numbers)

else

}

陣列中超過一半的數字

陣列中有乙個數字出現的次數超過陣列長度的一半,請找出這個數字。例如輸入乙個長度為9的陣列。由於數字2在陣列中出現了5次,超過陣列長度的一半,因此輸出2。如果不存在則輸出0。思路 定義乙個變數儲存當前元素,乙個計數器儲存次數,若次數等於0,則重新取字元。若次數大於零,遇到相同字元計數器 1,不同字元計...

陣列中數字超過一半的數字

題目描述 陣列中有乙個數字出現的次數超過陣列長度的一半,請找出這個數字。例如輸入乙個長度為9的陣列。由於數字2在陣列 現了5次,超過陣列長度的一半,因此輸出2。如果不存在則輸出0。1,利用hashmap 2,利用陣列排序 3,列舉法 暴力演算法 public class 陣列中數字超過一半的數字 e...

輸出陣列中超過一半次數的數字

題目 陣列中有乙個數字出現的次數超過陣列長度的一半,請找出這個數字。例如輸入乙個長度為9的陣列。由於數字2在陣列中出現了5次,超過陣列長度的一半,因此輸出2。如果不存在則輸出0。思路 遍歷陣列,儲存兩個值 陣列中的數字和次數。遍歷下乙個數字是,若與儲存的數字相同,次數 1,不同則 1 若次數為0,儲...