/**
* @param {number[]} nums
* @return {number}
*/
var majorityElement = function (nums) {
let count = {}
nums.map(e => {
if (e in count) {
count[e]++
} else {
count[e] = 1
}
})
let keys = Object.keys(count)
for (const key of keys) {
if (count[key] > Math.floor(nums.length / 2)) {
return key
}
}
};
Runtime: 60 ms, faster than 81.84% of JavaScript online submissions for Majority Element.
Memory Usage: 38 MB, less than 28.57% of JavaScript online submissions for Majority Element.
不知道为啥本地测试环境一直不通过。。明明想要的是3,给的也是3啊。。😂😂
func majorityElement(nums []int) int {
count := make(map[int]int)
for _, elem := range nums {
if _, ok := count[elem]; ok {
count[elem]++
} else {
count[elem] = 1
}
runtime.Gosched()
}
for key, val := range count {
if val > len(nums)/2 {
return key
}
runtime.Gosched()
}
return 0
}
Runtime: 44 ms, faster than 5.84% of Go online submissions for Majority Element.
Memory Usage: 5.9 MB, less than 100.00% of Go online submissions for Majority Element.
var majorityElement = function (nums) {
nums.sort()
if (nums.length % 2 === 0) {
return nums[Math.ceil(nums.length / 2)]
} else {
return nums[Math.floor(nums.length / 2)]
}
};
Runtime: 80 ms, faster than 20.69% of JavaScript online submissions for Majority Element.
Memory Usage: 37.4 MB, less than 64.29% of JavaScript online submissions for Majority Element.
func majorityElement(nums []int) int {
sort.Ints(nums)
return nums[len(nums)/2]
}
Runtime: 16 ms, faster than 92.69% of Go online submissions forMajority Element.
Memory Usage: 5.9 MB, less than 100.00% of Go online submissions for Majority Element.
go很神奇,直接len(nums)/2,都不需要判断奇偶的,就能有正确结果。。
开心消消乐
作者:linxinfu
看到评论取的这个名字,几乎要被笑死😂
做一个栈,如果和栈顶元素一样,就入栈,不一样就出栈。感觉更像是反向的消消乐
换我一百年都想不到这种骚操作😂😂
var majorityElement = function (nums) {
let stack = []
for (const num of nums) {
if (!stack.length) {
stack.push(num)
} else {
const top = stack.pop()
if (top === num) {
stack.push(top)
stack.push(num)
}
}
}
return stack.pop()
};
Runtime: 48 ms, faster than 99.71% of JavaScript online submissions for Majority Element.
Memory Usage: 38.3 MB, less than 7.14% of JavaScript online submissions for Majority Element.
go里面似乎没有现成的栈,只能用切片,然后手写相关的操作。
func majorityElement(nums []int) int {
var stack []int
for _, elem := range nums {
if len(stack) == 0 {
stack = append(stack, elem)
} else {
top := stack[len(stack)-1]
stack = stack[0 : len(stack)-1]
if top == elem {
stack = append(stack, top, elem)
}
}
runtime.Gosched()
}
return stack[len(stack)-1]
}
Runtime: 28 ms, faster than 18.02% of Go online submissions forMajority Element.
Memory Usage: 6.2 MB, less than 50.00% of Go online submissions forMajority Element.
var majorityElement = function (nums) {
let ans = nums[0]
count = 1
for (let i = 1; i < nums.length; i++) {
if (count === 0) {
ans = nums[i]
count++
continue
}
if (nums[i] === ans) {
count++
} else {
count--
}
}
return ans
};
Runtime: 60 ms, faster than 81.84% of JavaScript online submissions for Majority Element.
Memory Usage: 37.3 MB, less than 71.43% of JavaScript online submissions for Majority Element.
func majorityElement(nums []int) int {
var (
count int
ans int
)
for _, elem := range nums {
if count == 0 {
ans = elem
count = 1
continue
}
if elem == ans {
count++
} else {
count--
}
runtime.Gosched()
}
return ans
}
Runtime: 24 ms, faster than 25.49% of Go online submissions forMajority Element.
Memory Usage: 5.9 MB, less than 50.00% of Go online submissions forMajority Element.