-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
80ca65b
commit ee92cb0
Showing
7 changed files
with
125 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,23 @@ | ||
package class01 | ||
|
||
import "math" | ||
|
||
// 给定一个有序数组arr,代表坐落在X轴上的点 | ||
// 给定一个正数K,代表绳子的长度 | ||
// 返回绳子最多压中几个点? | ||
// 即使绳子边缘处盖住点也算盖住 | ||
func maxPoint1(arr []int, L int) int { | ||
// 结尾处必定压住一个点,因此答案最小是1 | ||
var res = 1 | ||
|
||
for i := 0; i < len(arr); i++ { | ||
// 以i位置结尾 | ||
nearest := nearestIndex(arr, i, arr[i]-L) | ||
res = int(math.Max(float64(res), float64(i-nearest+1))) | ||
} | ||
return res | ||
} | ||
|
||
func nearestIndex(arr []int, i int, x int) int { | ||
return 0 | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,39 @@ | ||
package class01 | ||
|
||
import ( | ||
"math" | ||
"testing" | ||
) | ||
|
||
func TestCoverMaxPoint(t *testing.T) { | ||
/* | ||
len := 100 | ||
max := 1000 | ||
testTime := 100000 | ||
fmt.Println("测试开始") | ||
for i := 0; i < testTime; i++ { | ||
L := rand.Intn(max) | ||
arr := generateArray(len, max) | ||
ans1 := maxPoint1(arr, L) | ||
ans2 := maxPoint2(arr, L) | ||
ans3 := test(arr, L) | ||
if ans1 != ans2 || ans2 != ans3 { | ||
fmt.Println("oops!") | ||
break | ||
} | ||
} | ||
*/ | ||
} | ||
|
||
func test(arr []int, L int) int { | ||
max := 0 | ||
for i := 0; i < len(arr); i++ { | ||
pre := i - 1 | ||
for pre >= 0 && arr[i]-arr[pre] <= L { | ||
pre-- | ||
} | ||
max = int(math.Max(float64(max), float64(i-pre))) | ||
} | ||
return max | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
package class27 | ||
|
||
//每一个项目都有三个数,[a,b,c]表示这个项目a和b乐队参演,花费为c | ||
//每一个乐队可能在多个项目里都出现了,但是只能被挑一次 | ||
//nums是可以挑选的项目数量,所以一定会有nums*2只乐队被挑选出来 | ||
//返回一共挑nums轮(也就意味着一定请到所有的乐队),最少花费是多少? | ||
//如果怎么都无法在nums轮请到nums*2只乐队且每只乐队只能被挑一次,返回-1 | ||
//nums<9,programs长度小于500,每组测试乐队的全部数量一定是nums*2,且标号一定是0 ~ nums*2-1*/ | ||
|
||
func minCost(programs [][]int, nums int) int { | ||
return 0 | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
package easy | ||
|
||
func twoSum(nums []int, target int) []int { | ||
numMap := make(map[int]int) | ||
for i, item := range nums { | ||
index, ok := numMap[target-item] | ||
if ok { | ||
return []int{index, i} | ||
} else { | ||
numMap[item] = i | ||
} | ||
} | ||
return []int{-1, -1} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
package easy |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
package middle | ||
|
||
func numRabbits(answers []int) int { | ||
ans := 0 | ||
rabbitSet := make(map[int]interface{}) | ||
for _, item := range answers { | ||
_, ok := rabbitSet[item+1] | ||
if !ok { // 存在这个记录 | ||
rabbitSet[item+1] = nil | ||
} | ||
} | ||
if len(rabbitSet) == 0 { | ||
return -1 | ||
} else { | ||
for k, _ := range rabbitSet { | ||
ans += k | ||
} | ||
} | ||
return ans | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
package middle | ||
|
||
import ( | ||
"fmt" | ||
"testing" | ||
) | ||
|
||
func TestRabbit(t *testing.T) { | ||
answers := []int{1, 1, 2} | ||
fmt.Println(numRabbits(answers)) | ||
|
||
answers2 := []int{10, 10, 10} | ||
fmt.Println(numRabbits(answers2)) | ||
|
||
ansWrong := []int{1, 0, 1, 0, 0} | ||
fmt.Println(numRabbits(ansWrong)) | ||
|
||
} |