我必须在 O (n^2) 时间复杂度最长的两个不同大小列表的后缀下进入球拍。我禁止在列表上使用反向或辅助前缀函数,我需要以相同的顺序获得结果.
(define (common-suffix L1 L2)
(if (= (length L1) (length L2))
(if (= 0 (min (length L1) (length L2)))
'()
(if (equal? (car L1) (car L2))
(append (cons (car L1) null) (common-suffix (cdr L1) (cdr L2)))
(append (common-suffix (cdr L1) (cdr L2)) null)))
(if (< (length L1) (length L2))
(common-suffix L1 (cdr L2))
(common-suffix (cdr L1) L2))))
这是我的实现,我只需要知道它是否低于 O (N^2) 时间复杂度。谢谢:)