2022-01-02:给定两个数组A和B,长度都是N, A[i]不可以在A中和其他数交换,只可以选择和B[i]交换(0<=i<n), 你的目的是让A有序,返回你能不能做到。
答案2022-01-02:
自然智慧,递归。从左往右,两种选择,选A[i]或者B[i]。
代码用golang编写。代码如下:
package main
import (
"fmt"
"math"
)
func main() {
A := []int{3, 2, 2}
B := []int{1, 4, 3}
ret := letASorted(A, B)
fmt.Println(ret)
}
func letASorted(A, B []int) bool {
return process(A, B, 0, math.MinInt64)
}
func process(A, B []int, i, lastA int) bool {
if i == len(A) {
return true
}
if A[i] >= lastA && process(A, B, i+1, A[i]) {
return true
}
if B[i] >= lastA && process(A, B, i+1, B[i]) {
return true
}
return false
}
执行结果如下:
左神java代码
|