mirror of
https://github.com/halfrost/LeetCode-Go.git
synced 2025-07-05 00:25:22 +08:00
规范格式
This commit is contained in:
22
leetcode/0441.Arranging-Coins/441. Arranging Coins.go
Normal file
22
leetcode/0441.Arranging-Coins/441. Arranging Coins.go
Normal file
@ -0,0 +1,22 @@
|
||||
package leetcode
|
||||
|
||||
import "math"
|
||||
|
||||
// 解法一 数学公式
|
||||
func arrangeCoins(n int) int {
|
||||
if n <= 0 {
|
||||
return 0
|
||||
}
|
||||
x := math.Sqrt(2*float64(n)+0.25) - 0.5
|
||||
return int(x)
|
||||
}
|
||||
|
||||
// 解法二 模拟
|
||||
func arrangeCoins1(n int) int {
|
||||
k := 1
|
||||
for n >= k {
|
||||
n -= k
|
||||
k++
|
||||
}
|
||||
return k - 1
|
||||
}
|
47
leetcode/0441.Arranging-Coins/441. Arranging Coins_test.go
Normal file
47
leetcode/0441.Arranging-Coins/441. Arranging Coins_test.go
Normal file
@ -0,0 +1,47 @@
|
||||
package leetcode
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"testing"
|
||||
)
|
||||
|
||||
type question441 struct {
|
||||
para441
|
||||
ans441
|
||||
}
|
||||
|
||||
// para 是参数
|
||||
// one 代表第一个参数
|
||||
type para441 struct {
|
||||
n int
|
||||
}
|
||||
|
||||
// ans 是答案
|
||||
// one 代表第一个答案
|
||||
type ans441 struct {
|
||||
one int
|
||||
}
|
||||
|
||||
func Test_Problem441(t *testing.T) {
|
||||
|
||||
qs := []question441{
|
||||
|
||||
question441{
|
||||
para441{5},
|
||||
ans441{2},
|
||||
},
|
||||
|
||||
question441{
|
||||
para441{8},
|
||||
ans441{3},
|
||||
},
|
||||
}
|
||||
|
||||
fmt.Printf("------------------------Leetcode Problem 441------------------------\n")
|
||||
|
||||
for _, q := range qs {
|
||||
_, p := q.ans441, q.para441
|
||||
fmt.Printf("【input】:%v 【output】:%v\n", p, arrangeCoins(p.n))
|
||||
}
|
||||
fmt.Printf("\n\n\n")
|
||||
}
|
45
leetcode/0441.Arranging-Coins/README.md
Executable file
45
leetcode/0441.Arranging-Coins/README.md
Executable file
@ -0,0 +1,45 @@
|
||||
# [441. Arranging Coins](https://leetcode.com/problems/arranging-coins/)
|
||||
|
||||
## 题目:
|
||||
|
||||
You have a total of n coins that you want to form in a staircase shape, where every k-th row must have exactly k coins.
|
||||
|
||||
Given n, find the total number of **full** staircase rows that can be formed.
|
||||
|
||||
n is a non-negative integer and fits within the range of a 32-bit signed integer.
|
||||
|
||||
**Example 1:**
|
||||
|
||||
n = 5
|
||||
|
||||
The coins can form the following rows:
|
||||
¤
|
||||
¤ ¤
|
||||
¤ ¤
|
||||
|
||||
Because the 3rd row is incomplete, we return 2.
|
||||
|
||||
**Example 2:**
|
||||
|
||||
n = 8
|
||||
|
||||
The coins can form the following rows:
|
||||
¤
|
||||
¤ ¤
|
||||
¤ ¤ ¤
|
||||
¤ ¤
|
||||
|
||||
Because the 4th row is incomplete, we return 3.
|
||||
|
||||
|
||||
## 题目大意
|
||||
|
||||
你总共有 n 枚硬币,你需要将它们摆成一个阶梯形状,第 k 行就必须正好有 k 枚硬币。给定一个数字 n,找出可形成完整阶梯行的总行数。n 是一个非负整数,并且在32位有符号整型的范围内。
|
||||
|
||||
|
||||
|
||||
## 解题思路
|
||||
|
||||
|
||||
- n 个硬币,按照递增的方式排列搭楼梯,第一层一个,第二层二个,……第 n 层需要 n 个硬币。问硬币 n 能够搭建到第几层?
|
||||
- 这一题有 2 种解法,第一种解法就是解方程求出 X,`(1+x)x/2 = n`,即 `x = floor(sqrt(2*n+1/4) - 1/2)`,第二种解法是模拟。
|
Reference in New Issue
Block a user