本文主要是介绍【412】【K 次乘运算后的最终数组 II】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
差200个样例,等佬解
class Solution:def getFinalState(self, nums: List[int], k: int, multiplier: int) -> List[int]:n=len(nums)for i in range(k):mn=min(nums)for j in range(n):if nums[j]==mn:nums[j]*=multiplierbreakfor num in nums:num=num%(pow(10,9)+7)return nums
大佬题解:
class Solution:def getFinalState(self, nums: List[int], k: int, multiplier: int) -> List[int]:if multiplier==1:return numsMOD=1_000_000_007n=len(nums)mx=max(nums)h=[(x,i) for i,x in enumerate(nums)]heapify(h)#模拟,直到堆顶为mxwhile k and h[0][0]<mx:x,i=h[0]heapreplace(h,(x*multiplier,i))k-=1#剩余操作使用公式计算h.sort()for i,(x,j) in enumerate(h):nums[j]=x*pow(multiplier,k//n+(i<k%n),MOD)%MODreturn nums
很牛的思路。
ps:
后面还有2个优化
这篇关于【412】【K 次乘运算后的最终数组 II】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!