当前位置: 首页 > news >正文

Vue3(domdiff)最长递归子序列求解简易版(超简单)

Vue3(domdiff)最长递归子序列求解简易版

    • ⚠️ 关键词(每一个都需要理解)
    • js 代码实现
    • 写完感想
    • 欢迎关注

⚠️ 关键词(每一个都需要理解)

  • 动态规划(O(N^2))(不提倡)
  • 贪心 + 二分法 (O(N * logN))(✅)
  • vue3 patch 阶段 domdiff 最复杂的情况(数组与数组)
  • 索引值 (结果返回的是下标)
  • 前驱节点追溯解决序列不对(重点

js 代码实现

var lengthOfLIS = function (nums) {let result = [0];let p = nums.slice(); // 缓存每一个result的前置节点let len = nums.length;for (let i = 0; i < len; i++) {let j = result[result.length - 1];let x = nums[j];if (nums[i] > x) {p[i] = j;result.push(i);} else {// 二分查找 (不懂好好研究一下)let b = result.length;let a = 0;while (a < b) {c = (a + b) >> 1;if (nums[result[c]] >= nums[i]) {b = c;} else {a = c + 1;}}p[i] = result[a - 1];result[a] = i;}}// 前驱节点追溯解决序列不对let u = result.length;let v = result[u - 1];while (u-- > 0) {result[u] = v;v = p[v];// 这就是为什么p存前置节点,为了回溯}return result;
};

写完感想

  • 代码写的很粗糙,但是核心思想大差不差
  • 自己多思考,多写几遍就会掌握
  • 推荐看一看《Vue.js技术内幕》

欢迎关注

在这里插入图片描述

http://www.lryc.cn/news/333306.html

相关文章:

  • LLaMA-Factory+qwen多轮对话微调
  • 邦芒面试:如何在面试中巧妙回答自己的缺点
  • Android:身份证识别功能实现
  • MacOS安装Homebrew教程
  • laravel如何通过DB获取一条数据并转成数组
  • ENSP USG防火墙接入虚拟机;开启Web访问;
  • 数据结构算法题(力扣)——链表
  • LeetCode---391周赛
  • 微信小程序的页面交互2
  • 【VSCode】修改插件地址
  • 自然语言处理NLP概述
  • 计算机网络——37认证
  • Java中利用BitMap位图实现海量级数据去重
  • Linux知识点记录
  • js的check函数
  • 赛尼格磁电科技邀您到场参观2024第13届生物发酵展
  • gpt国内怎么用?最新版本来了
  • Vim脚本语言入门:打造你的编辑器
  • myweb项目资料集
  • Kubernetes(k8s):部署、使用 metrics-server
  • 为什么建议你学习Spring底层原理?
  • post请求搜索功能爬虫
  • #pragma once的作用
  • 【Android】图解View的工作流程原理
  • 记工时流程
  • Ubuntu20.04使用Neo4j导入CSV数据可视化知识图谱
  • vue-cli打包 nodejs内存溢出 vue2.x Last few GCs
  • SpringBoot整合Flowable/Activiti
  • 基础总结篇:Activity生命周期
  • 【鸿蒙 HarmonyOS】@ohos.promptAction (弹窗)