diff --git a/leetcode/1401-1500/1475.Final-Prices-With-a-Special-Discount-in-a-Shop/README.md b/leetcode/1401-1500/1475.Final-Prices-With-a-Special-Discount-in-a-Shop/README.md
new file mode 100644
index 000000000..36e7af59e
--- /dev/null
+++ b/leetcode/1401-1500/1475.Final-Prices-With-a-Special-Discount-in-a-Shop/README.md
@@ -0,0 +1,42 @@
+# [1475.Final Prices With a Special Discount in a Shop][title]
+
+## Description
+You are given an integer array `prices` where `prices[i]` is the price of the ith item in a shop.
+
+There is a special discount for items in the shop. If you buy the ith item, then you will receive a discount equivalent to `prices[j]` where `j` is the minimum index such that `j > i` and `prices[j] <= prices[i]`. Otherwise, you will not receive any discount at all.
+
+Return an integer array `answer` where answer[i] is the final price you will pay for the ith item of the shop, considering the special discount.
+
+**Example 1:**
+
+```
+Input: prices = [8,4,6,2,3]
+Output: [4,2,4,2,3]
+Explanation:
+For item 0 with price[0]=8 you will receive a discount equivalent to prices[1]=4, therefore, the final price you will pay is 8 - 4 = 4.
+For item 1 with price[1]=4 you will receive a discount equivalent to prices[3]=2, therefore, the final price you will pay is 4 - 2 = 2.
+For item 2 with price[2]=6 you will receive a discount equivalent to prices[3]=2, therefore, the final price you will pay is 6 - 2 = 4.
+For items 3 and 4 you will not receive any discount at all.
+```
+
+**Example 2:**
+
+```
+Input: prices = [1,2,3,4,5]
+Output: [1,2,3,4,5]
+Explanation: In this case, for all items, you will not receive any discount at all.
+```
+
+**Example 3:**
+
+```
+Input: prices = [10,1,1,6]
+Output: [9,0,1,6]
+```
+
+## 结语
+
+如果你同我一样热爱数据结构、算法、LeetCode,可以关注我 GitHub 上的 LeetCode 题解:[awesome-golang-algorithm][me]
+
+[title]: https://leetcode.com/problems/final-prices-with-a-special-discount-in-a-shop
+[me]: https://github.com/kylesliu/awesome-golang-algorithm
diff --git a/leetcode/1401-1500/1475.Final-Prices-With-a-Special-Discount-in-a-Shop/Solution.go b/leetcode/1401-1500/1475.Final-Prices-With-a-Special-Discount-in-a-Shop/Solution.go
index d115ccf5e..99227e0f5 100755
--- a/leetcode/1401-1500/1475.Final-Prices-With-a-Special-Discount-in-a-Shop/Solution.go
+++ b/leetcode/1401-1500/1475.Final-Prices-With-a-Special-Discount-in-a-Shop/Solution.go
@@ -1,5 +1,16 @@
package Solution
-func Solution(x bool) bool {
- return x
+func Solution(prices []int) []int {
+ l := len(prices)
+ dst := make([]int, l)
+ copy(dst, prices)
+ for i := l - 2; i >= 0; i-- {
+ for j := i + 1; j < l; j++ {
+ if prices[j] <= prices[i] {
+ dst[i] -= prices[j]
+ break
+ }
+ }
+ }
+ return dst
}
diff --git a/leetcode/1401-1500/1475.Final-Prices-With-a-Special-Discount-in-a-Shop/Solution_test.go b/leetcode/1401-1500/1475.Final-Prices-With-a-Special-Discount-in-a-Shop/Solution_test.go
index 14ff50eb4..5755fc5de 100755
--- a/leetcode/1401-1500/1475.Final-Prices-With-a-Special-Discount-in-a-Shop/Solution_test.go
+++ b/leetcode/1401-1500/1475.Final-Prices-With-a-Special-Discount-in-a-Shop/Solution_test.go
@@ -10,12 +10,12 @@ func TestSolution(t *testing.T) {
// 测试用例
cases := []struct {
name string
- inputs bool
- expect bool
+ inputs []int
+ expect []int
}{
- {"TestCase", true, true},
- {"TestCase", true, true},
- {"TestCase", false, false},
+ {"TestCase1", []int{8, 4, 6, 2, 3}, []int{4, 2, 4, 2, 3}},
+ {"TestCase2", []int{1, 2, 3, 4, 5}, []int{1, 2, 3, 4, 5}},
+ {"TestCase3", []int{10, 1, 1, 6}, []int{9, 0, 1, 6}},
}
// 开始测试
@@ -30,10 +30,10 @@ func TestSolution(t *testing.T) {
}
}
-// 压力测试
+// 压力测试
func BenchmarkSolution(b *testing.B) {
}
-// 使用案列
+// 使用案列
func ExampleSolution() {
}