python 求众数 LeetCode N0.169
这道题有很多解法官方leetcode上面是六种,由于说的太过于详细,我都不好意思,再补充什么了。所以我就写了一点,没看答案之前的写法,和我觉得,需要掌握的写法吧。他写的很多代码很精简,值得学习。(ps,纳闷的是,即使我用的O(n)的复杂度,排名也很靠后哈哈哈哈哈)
class
Solution
(
object
)
:
def
majorityElement
(
self
,
nums
)
:
"""
:type nums: List[int]
:rtype: int
"""
#count = 0
#candidate = None
#for num in nums:
# if count == 0:
# candidate = num
# count += (1 if num == candidate else -1)
#return candidate
count
=
0
candidate
=
nums
[
0
]
for
i
in
range
(
len
(
nums
)
)
:
if
nums
[
i
]
==
candidate
:
count
+=
1
else
:
count
-=
1
if
count
==
0
:
candidate
=
nums
[
i
+
1
]
return
candidate
class
Solution
(
object
)
:
def
majorityElement
(
self
,
nums
)
:
"""
:type nums: List[int]
:rtype: int
"""
import
math
count
=
{
}
if
len
(
nums
)
%
2
==
1
:
n
=
len
(
nums
)
+
1
else
:
n
=
len
(
nums
)
for
i
in
nums
:
count
[
i
]
=
count
.
get
(
i
,
0
)
+
1
if
count
[
i
]
>=
n
/
2
:
return
i
for
i
in
nums
:
if
count
[
i
]
>=
n
/
2
:
return
i
class
Solution
:
def
majorityElement
(
self
,
nums
)
:
counts
=
collections
.
Counter
(
nums
)
return
max
(
counts
.
keys
(
)
,
key
=
counts
.
get
)
#作者:LeetCode
#链接:https://leetcode-cn.com/problems/majority-element/solution/qiu-zhong-shu-by-leetcode-2/
#来源:力扣(LeetCode)
#著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。