【leetcode-python-24】1046. 最後一塊石頭的重量
- 渣渣原始版(59.09%)
- 參考大佬版(59.09%)
leetcode 1046. 最後一塊石頭的重量
渣渣原始版(59.09%)
先排序然後再一個一個比對。
class Solution(object):
def lastStoneWeight(self, stones):
"""
:type stones: List[int]
:rtype: int
"""
if not stones:
return 0
stones.sort(reverse=True)
while len(stones) > 1:
x = stones[0]-stones[1]
stones.pop(0)
stones.pop(0)
for i in range(len(stones)):
if x >stones[i]:
stones.insert(i,x)
break
else:
stones.append(x)
return stones[0]
下面這個理論上好點,畢竟沒有reverse,而且是直接pop的。
class Solution(object):
def lastStoneWeight(self, stones):
"""
:type stones: List[int]
:rtype: int
"""
if not stones:
return 0
stones.sort()
while len(stones) > 1:
x = stones.pop()-stones.pop()
for i in range(len(stones)):
if x <stones[i]:
stones.insert(i,x)
break
else:
stones.append(x)
return stones[0]
參考大佬版(59.09%)
每次重新sort。
注:參考題解區天道妖星思路。
class Solution(object):
def lastStoneWeight(self, stones):
"""
:type stones: List[int]
:rtype: int
"""
if not stones:
return 0
while len(stones) >= 2:
stones.sort()
stones.append(stones.pop()-stones.pop())
return stones[0]
新手入坑,多多包涵~~