Algorithm
本周的算法题为 1475. 商品折扣后的最终价格
给你一个数组 prices
,其中 prices[i]
是商店里第 i
件商品的价格。
商店里正在进行促销活动,如果你要买第 i
件商品,那么你可以得到与 prices[j]
相等的折扣,其中 j
是满足 j > i
且 prices[j] <= prices[i]
的 最小下标 ,如果没有满足条件的 j
,你将没有任何折扣。
请你返回一个数组,数组中第 i
个元素是折扣后你购买商品 i
最终需要支付的价格。
示例 1:
输入:prices = [8,4,6,2,3]
输出:[4,2,4,2,3]
解释:
商品 0 的价格为 price[0]=8 ,你将得到 prices[1]=4 的折扣,所以最终价格为 8 - 4 = 4 。
商品 1 的价格为 price[1]=4 ,你将得到 prices[3]=2 的折扣,所以最终价格为 4 - 2 = 2 。
商品 2 的价格为 price[2]=6 ,你将得到 prices[3]=2 的折扣,所以最终价格为 6 - 2 = 4 。
商品 3 和 4 都没有折扣。
实现代码如下:
const finalPrices = function (prices) {
let priceDifferences = []
prices.forEach((currentPrice, currentIndex) => {
let lowerPriceIndexes = []
let priceDifference = 0
prices.forEach((comparePrice, compareIndex) => {
if (compareIndex > currentIndex && comparePrice <= currentPrice) {
lowerPriceIndexes.push(compareIndex);
}
})
if (lowerPriceIndexes.length === 0) {
priceDifference = currentPrice
} else {
let minIndex = Math.min(...lowerPriceIndexes)
priceDifference = currentPrice - prices[minIndex]
}
priceDifferences.push(priceDifference)
})
return priceDifferences
}
解题思路:
- 先遍历查询满足条件的下标,然后获取最小下标。
- 如果没有符合条件的折扣,则使用当前价格。
Review
美国各地已经有数百起神秘无人机的目击事件。上个月,人们首次开始向警方讲述无人机的情况。从那以后,越来越多的人报告看到了他们。大多数目击事件发生在新泽西州。那里的居民很担心,因为无人机一直在军事基地上空飞行。在新泽西州唐纳德·特朗普的高尔夫球场附近发现了一架无人机。由于“可疑”无人机活动,纽约州斯图尔特机场上周关闭了一个小时。美国当局表示,他们不确定无人机来自哪里。一位发言人表示,不明飞行物(UFO)对公众没有危险。
由于无人机目击事件,许多阴谋论在网上开始出现。社交媒体上的一些人说俄罗斯和中国正在利用这些物体监视美国。一名新泽西州共和党众议员表示,这些无人机来自大西洋的一艘“伊朗母舰”。美国国土安全部部长告诉美国广播公司新闻,他知道“没有外国参与这些目击事件”。他补充说:“如果我们发现任何外国参与或犯罪活动,我们将与美国公众沟通。”联邦调查局调查人员表示,大多数无人机目击事件都是“认错人”的情况,人们对新闻报道“反应过度”。
Tip
Element Plus
组件库的Table
表格组件,在设置el-table-column
的type
为selection
,align
为center
时,出现只有表头居中了,但是内容没有居中,排查了一下原因,是因为在自行封装的Table组件中,设置了show-overflow-tooltip
,虽然已经过滤了type为custom的情况,但是缺少了过滤selection
的情况,所以勾选框多了一个el-tooltip
的样式,导致center
不生效。
Share
因为在《铁齿铜牙纪晓岚》中知道“皎皎者易污”,然后把李固的《遗黄琼书》书信内容也看了一下,不得不说,写的真好,发人深省:
- 盖君子谓:“伯夷隘,柳下惠不恭。”
- 常闻语曰:“峣峣者易缺,皎皎者易污。”《阳春》之曲,和者必寡;盛名之下,其实难副。
本文由博客一文多发平台 OpenWrite 发布!