商品折扣后的最终价格

商品折扣后的最终价格

一、题目描述

给定一个数组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;
    }
posted @ 2022-09-01 15:32  z_coding  阅读(98)  评论(0)    收藏  举报