添加新题目

This commit is contained in:
2025-08-22 04:31:58 +08:00
parent 1f832e271e
commit 62034548cc
5 changed files with 279 additions and 43 deletions

View File

@@ -0,0 +1,49 @@
package main
import (
"fmt"
"sort"
)
func main() {
fmt.Println(firstMissingPositive([]int{1000, -1}))
}
func firstMissingPositive(nums []int) int {
if len(nums) == 1 {
if nums[0] == 1 {
return 2
}
return 1
}
numlist := make([]int, 0)
for i := 0; i < len(nums); i++ {
if nums[i] > 0 {
numlist = append(numlist, nums[i])
}
}
sort.Ints(numlist)
fmt.Println(numlist)
slow, fast := 0, 1
if len(numlist) == 0 {
return 1
}
if numlist[0] != 1 {
return 1
}
for slow <= fast && slow <= len(numlist)-1 && fast <= len(numlist)-1 {
if numlist[fast] == numlist[slow]+1 || numlist[fast] == numlist[slow] {
fmt.Println("相等")
fmt.Println("当前", numlist[fast], numlist[slow]+1)
slow++
fast = slow + 1
continue
} else {
break
}
}
return numlist[slow] + 1
}

View File

@@ -0,0 +1,52 @@
package main
import "fmt"
func main() {
fmt.Println(productExceptSelf([]int{1, 2, 3, 4}))
}
func productExceptSelf(nums []int) []int {
before := make([]int, len(nums))
after := make([]int, len(nums))
result := make([]int, len(nums))
value1 := 1
value2 := 1
for i := 0; i < len(nums); i++ {
if i == 0 {
before[i] = 0
continue
}
//fmt.Println("value:", value1)
value1 = nums[i-1] * value1
//fmt.Println("nums[i-1]:", nums[i-1])
before[i] = value1
}
for i := len(nums) - 1; i >= 0; i-- {
//fmt.Println("循环到:", nums[i])
if i == len(nums)-1 {
after[i] = 0
continue
}
value2 *= nums[i+1]
after[i] = value2
}
for i := 0; i < len(nums); i++ {
if i == 0 {
result[i] = after[i]
continue
}
if i == len(nums)-1 {
result[i] = before[i]
continue
}
result[i] = before[i] * after[i]
}
//fmt.Println(before)
//fmt.Println(after)
return result
}