商品折扣后的最终价格
商品折扣后的最终价格
一、题目描述
给定一个数组prices,每一个元素都是一件商品的价格。如果从数组左边开始从0索引开始。如果1处索引的价格,小于0处。则将1处的价格作为优惠价格。现价就是优惠原价减去现价,依次类推。如果i后面的元素都是大于i的话,商品价格就是原价。
实例
输入:prices = [8,4,6,2,3]
输出:[4,2,4,2,3]
输入:prices = [1,2,3,4,5]
输出:[1,2,3,4,5]
二、题目分析
需要找到数组中第一个比i处索引处小的价格,并在原价的基础上减去优惠部分的价格,就是商品的价格。
三、解题思路
使用for循环遍历数组prices,并初始化优惠的价格。再使用一个for循环,找出其后面的第一个较小值。并赋值给优惠价值变量 discount。并结束循环。然后创建新的数组pri,将pri[i] = prices-discount;
代码实现
public int[] finalPrices(int[] prices) {
int n = prices.length;
int[] pri = new int[n];
for(int i =0; i<n; i++){
int discount = 0;
for(int j =i+1; j<n; j++){
if(prices[j] <= prices[i]){
discount = prices[j];
break;
}
}
pri[i] = prices[i] - discount;
}
return pri;
}
浙公网安备 33010602011771号