add new solutions

This commit is contained in:
kanna5 2026-01-05 16:48:03 +09:00
parent d798d5e8c9
commit 886b5e0a8e
Signed by: kkyy
GPG key ID: 06332F3965E9B0CF
34 changed files with 1164 additions and 0 deletions

View file

@ -0,0 +1,46 @@
package q33
func findK(nums []int) int {
if len(nums) < 2 || nums[0] < nums[len(nums)-1] {
return 0
}
l, r := 0, len(nums)
for l < r && nums[l] > nums[r-1] {
m := (l + r) / 2
if nums[m] > nums[r-1] {
l = m + 1
} else {
r = m + 1
l++
}
}
return len(nums) - l
}
func translate(n, k, i int) int {
if i < k {
return n + i - k
}
return i - k
}
func search(nums []int, target int) int {
k := findK(nums)
l, r := 0, len(nums)
for l < r {
m := (l + r) / 2
mt := translate(len(nums), k, m)
if nums[mt] == target {
return mt
} else if nums[mt] > target {
r = m
} else {
l = m + 1
}
}
return -1
}
var _ = search