明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
123
返回列表 发新帖
楼主: tryhi

[讨论] 找最长升序序列算法问题

[复制链接]
发表于 2020-3-7 15:55:21 | 显示全部楼层
tryhi 发表于 2020-3-1 20:14
啊,什么群,C#学不来啊

221746390

我是群主,我们以前的小伙伴基本都在里面,你把消息屏蔽了吧?
发表于 2020-3-8 14:16:55 来自手机 | 显示全部楼层
我就知道此贴必能引出mahuan兄
发表于 2021-4-15 20:07:05 | 显示全部楼层
本帖最后由 mahuan1279 于 2021-4-15 20:10 编辑
tryhi 发表于 2020-3-1 15:13
看来还是递归适合解决这种问题,只是当数量达到100个时,运行时间要达到几十秒甚至超过1分钟,而当数量为 ...

(defun tt(lst)
(defun f1 (plst j num)
   (setq ij -1)
   (setq plst (mapcar '(lambda (x) (if (= (setq ij (+ ij 1)) j) num x)) plst))
)
(setq n (length lst) i 0 ans 0 vlst '(nil))
(repeat n (setq vlst (cons nil vlst)))
(while (< i n)
    (setq l 0 r ans)
        (while (< l r)
          (setq mid (/ (+ l r) 2))
          (if (<= (nth mid vlst) (nth i lst))
               (setq l (+ mid 1))
                   (setq r mid)
           )
        )
    (setq vlst (f1 vlst l (nth i lst)))
        (if (= l ans) (setq ans (+ ans 1)))
        (setq i (+ i 1))
)
(setq vlst (reverse (vl-remove nil vlst)) alst (reverse lst) blst (list (+ 1 (car vlst))))
(while  vlst
     (if (and (>= (car alst) (car vlst)) (<= (car alst) (car blst)))
             (progn
             (setq blst (cons (car alst) blst))
             (setq vlst (cdr vlst))
                         (setq alst (cdr alst))
                 )
                 (setq alst (cdr alst))
         )
)
(reverse (cdr (reverse blst)))
)

_$ (tt '(0 0 2 4 1 5 1 3 1 2 0 8 9 10 4 6))
(0 0 1 1 1 2 8 9 10)
_$  (tt '(0 0 2 4 1 5 1 3 1 2 0 8 9 10 4 6 7))
(0 0 1 1 1 2 4 6 7)
_$ (tt '(5 1 3 2 0 8 9 10 4 6 7))
(1 2 4 6 7)
_$ (tt '(3 5 4 6 10 0 1 9 8 2 7))
(0 1 2 7)
_$ (tt '(0 1 9 10 2 3 4 5 6 8 7))
(0 1 2 3 4 5 6 7)
_$ (tt '(6 1 0 3 11 10 4 5 8 9 2 7))
(0 3 4 5 8 9)
_$

评分

参与人数 1明经币 +1 收起 理由
tryhi + 1 一年了,我都忘记这个算法我是用在什么地方.

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-5-16 22:18 , Processed in 0.171018 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表