add new solutions
This commit is contained in:
parent
9a10695e8c
commit
ca24d0a56a
30 changed files with 697 additions and 16 deletions
|
|
@ -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
|
||||
|
|
|
|||
24
solutions/1/q167/solution.go
Normal file
24
solutions/1/q167/solution.go
Normal 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
|
||||
Loading…
Add table
Add a link
Reference in a new issue