add new solutions

This commit is contained in:
kanna5 2026-01-05 16:48:03 +09:00
parent 9a10695e8c
commit ca24d0a56a
Signed by: kkyy
GPG key ID: 06332F3965E9B0CF
30 changed files with 697 additions and 16 deletions

View file

@ -1,24 +1,29 @@
package q150
func twoSum(numbers []int, target int) []int {
l, r := 0, len(numbers)-1
import "strconv"
for l < r {
for numbers[r]+numbers[l] > target {
r--
}
if numbers[r]+numbers[l] == target {
return []int{l + 1, r + 1}
}
func evalRPN(tokens []string) int {
stack := make([]int, 0, len(tokens)/2)
for _, s := range tokens {
height := len(stack)
for numbers[r]+numbers[l] < target {
l++
}
if numbers[r]+numbers[l] == target {
return []int{l + 1, r + 1}
switch s {
case "+":
stack[height-2] += stack[height-1]
case "-":
stack[height-2] -= stack[height-1]
case "*":
stack[height-2] *= stack[height-1]
case "/":
stack[height-2] /= stack[height-1]
default:
num, _ := strconv.ParseInt(s, 10, strconv.IntSize)
stack = append(stack, int(num))
continue
}
stack = stack[:height-1]
}
return []int{} // impossible
return stack[0]
}
var _ = twoSum
var _ = evalRPN

View file

@ -0,0 +1,24 @@
package q167
func twoSum(numbers []int, target int) []int {
l, r := 0, len(numbers)-1
for l < r {
for numbers[r]+numbers[l] > target {
r--
}
if numbers[r]+numbers[l] == target {
return []int{l + 1, r + 1}
}
for numbers[r]+numbers[l] < target {
l++
}
if numbers[r]+numbers[l] == target {
return []int{l + 1, r + 1}
}
}
return []int{} // impossible
}
var _ = twoSum