classSolution:defmyPow(self, x:float, n:int)->float:
a=1if n<0:
x=1/x
n=-n
if n==0:return1while(n>0):if n&1:
a*=x
x*=x
n>>=1return a
leetcode 53:
classSolution:defmaxSubArray(self, nums: List[int])->int:
n=len(nums)if n==1:return nums[0]
l=self.maxSubArray(nums[:len(nums)//2])
r=self.maxSubArray(nums[len(nums)//2:])
max_l=nums[len(nums)//2-1]
t=0for i inrange(len(nums)//2-1,-1,-1):
t+=nums[i]
max_l=max(t,max_l)
max_r=nums[len(nums)//2]
t=0for i inrange(len(nums)//2,len(nums)):
t+=nums[i]
max_r=max(t,max_r)returnmax(l,r,max_l+max_r)
leetcode 169:
classSolution:defmajorityElement(self, nums: List[int])->int:ifnot nums:returnNoneiflen(nums)==1:return nums[0]
l=self.majorityElement(nums[:len(nums)//2])
r=self.majorityElement(nums[len(nums)//2:])if l==r:return l
if nums.count(l)>nums.count(r):return l
else:return r