zoukankan      html  css  js  c++  java
  • leetcode1357

     1 class Cashier:
     2     def __init__(self, n: int, discount: int, products: 'List[int]', prices: 'List[int]'):
     3         self.customer_num = 0
     4         self.dic = {}
     5         m = len(products)
     6         for i in range(m):
     7             self.dic[products[i]] = prices[i]
     8         self.n = n
     9         self.discount = discount
    10 
    11 
    12     def getBill(self, product: 'List[int]', amount: 'List[int]') -> float:
    13         self.customer_num += 1
    14         self.customer_num %= self.n
    15         m = len(product)
    16         total_amount = 0
    17         for i in range(m):
    18             productid = product[i]
    19             amt = amount[i]
    20             total_amount += (self.dic[productid] * amt)
    21         if self.customer_num == 0:
    22             total_amount = total_amount - (self.discount * total_amount) / 100
    23         return total_amount

    算法思路:将products[]与prices[]建立映射字典,这样可以方便查询每一种商品对应的单价。

    每增加一个用户,累加一次用户数量,并用n进行求模运算,每第n个用户就计算折扣。

  • 相关阅读:
    Tiny64140之初始化时钟
    Tiny6410之控制icache驱动
    Tiny6410之按键裸机驱动
    Linux -- man 、info、 whatis、 -h
    Linux -- which whereis
    Linux -- sudoers (简单:转)
    Linux -- sudo
    Linux -- sudoers文件
    Linux -- cp
    Linux -- mv
  • 原文地址:https://www.cnblogs.com/asenyang/p/12349488.html
Copyright © 2011-2022 走看看