薰衣草2333头像
关注

一天两道力扣(7)

class Solution(object):
    def majorityElement(self, nums):
        votes = 0
        for num in nums:
            if votes == 0: res = num
            if num == res:
                votes += 1 
            else:
                votes -= 1

        return res

 思路:不管前面抵消的都是非众数还是说其中有一半众数,最后剩的一定还是众数

class Solution(object):
    def productExceptSelf(self, nums):
        ans, tmp = [1] * len(nums), 1
        for i in range(1, len(nums)):
            ans[i] = ans[i - 1] * nums[i - 1]
        for i in range(len(nums) - 2, -1, -1):
            tmp *= nums[i + 1]
            ans[i] *= tmp
        return ans
        

思路:第一个循环使用数组ans[]来存储每个元素左侧元素乘积(从最左侧开始,每次往右乘一个数)。第二个循环不使用数组存储值,直接使用一个变量temp计算右侧元素乘积(从最右侧元素开始,每次往左乘一个数)。然后直接用ans[]*temp来计算最终结果,每一轮计算出temp就计算使用掉然后下一轮更新。最终就只用到两个单层循环和一个数组。

转载自CSDN-专业IT技术社区

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/m0_53677355/article/details/149814474

评论

赞0

评论列表

微信小程序
QQ小程序

关于作者

点赞数:0
关注数:0
粉丝:0
文章:0
关注标签:0
加入于:--