Skip to content

Commit

Permalink
init
Browse files Browse the repository at this point in the history
  • Loading branch information
gexincoding committed Jan 19, 2024
1 parent 80ca65b commit ee92cb0
Show file tree
Hide file tree
Showing 7 changed files with 125 additions and 0 deletions.
22 changes: 22 additions & 0 deletions brushing/class01/code01_cover_max_point.go
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
}
38 changes: 38 additions & 0 deletions brushing/class01/code01_cover_max_point_test.go
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
}
12 changes: 12 additions & 0 deletions brushing/class27/code01_pic_bands.go
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
}
14 changes: 14 additions & 0 deletions lc/easy/easy_0001_two_sum.go
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}
}
1 change: 1 addition & 0 deletions lc/easy/easy_0001_two_sum_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
package easy
20 changes: 20 additions & 0 deletions lc/middle/mid_0781_rabbits_in_forest.go
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
}
18 changes: 18 additions & 0 deletions lc/middle/mid_0781_rabbits_in_forest_test.go
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))

}

0 comments on commit ee92cb0

Please sign in to comment.