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

下一代AI App架构:前端生成,后端消失

过去十年,Web 和 App 的开发范式基本稳定:前端负责交互体验,后端负责业务逻辑和数据管理。即使是“无服务架构”也只是将后端“拆散”而非“消失”。

但随着 AI 原生应用的兴起,特别是 大模型本地化、小模型部署、WebAssembly、LoRA微调 等技术的成熟,一个全新的架构范式正在悄然出现:

AI App 的下一代形态:前端生成,后端消失。


一、什么是“前端生成,后端消失”?

这是一个由 模型驱动、端侧运行、无服务器依赖 的全新App架构。它具备以下特征:

  1. AI模型部署在前端(手机、浏览器、边缘设备)
  2. 核心功能通过前端调用本地模型直接生成结果
  3. 无后端API依赖,或仅依赖边缘缓存 / 静态资源托管
  4. 数据本地处理,符合隐私与合规要求
  5. 代码/功能通过AI“即时生成”而非传统开发

简单说,就是:

传统架构下一代AI架构
前端 + 后端 + API纯前端 + 本地AI模型
开发 -> 部署 -> 运行生成 -> 使用 -> 自演化
数据传输到云处理数据本地即处理即反馈
用户依赖服务端更新用户端自学习、自适应更新

二、为什么现在是时候了?

这个架构并非幻想,它背后的“燃料”已齐备:

1. 模型本地部署已现实

  • Apple 的 CoreML、Google 的 TFLite、Meta 的 Llama.cpp、Mistral、Gemma 等模型,均可运行在手机、浏览器、甚至 ESP32。
  • WASM + WebGPU 使得 Transformer 模型在浏览器本地推理成为可能。

2. 边缘算力提升

  • iPhone、Android 旗舰机、Apple M 系芯片、Jetson Nano 甚至平板,都可以高效跑小模型。
  • RTX 40 系显卡支持本地训练和微调。

3. 生成式AI+Prompt编程范式

  • 用户不需要复杂交互逻辑,通过 Prompt 或自然语言就能驱动App。
  • 前端本身也可以由AI生成——UI自动适配、功能自动组合。

4. 数据隐私需求倒逼本地处理

  • 隐私法规(如GDPR)推动敏感数据不出设备。
  • 医疗、教育、金融等场景必须“端上智能”。

三、典型场景举例

  1. AI记事本

    • 输入一句话,浏览器内的模型解析并生成结构化笔记
    • 无需后端存储,数据存入本地IndexedDB或文件系统
  2. AI对话助理(嵌入App或手机桌面)

    • 小模型Llama3-8B在本地运行,对话实时生成
    • 无需调用OpenAI API,无需用户登录
  3. 手势识别 + 指令执行(AR/投影设备)

    • 摄像头采集图像,前端模型识别手势
    • 触发预设动作,无需云端控制器
  4. 个人AI Copilot(浏览器插件、桌面端)

    • 本地向量数据库 + 本地模型(如Ollama)组合
    • 用户文件全程不上传,无需云端“中控”

四、前端即模型、即应用

在这个新架构中,“前端” 不再是UI层,而是“模型宿主 + 交互接口 + 推理引擎”

  • 前端代码中直接嵌入模型(或通过懒加载机制加载)
  • 应用功能通过提示词(Prompt)组合,无需传统编程逻辑
  • 用户行为驱动模型生成结果,即时呈现,无需网络请求

它的开发范式也将变化:

传统前端开发AI原生前端开发
写JS/React逻辑写Prompt/微指令
调API接口调本地模型/向量搜索
构造UI组件用自然语言生成界面
构建 -> 发布用户端“即生成即用”

五、这是否意味着后端真的“消失”了?

并不是所有“后端”都会消失,但以下部分将不再必要:

  • 用户注册/登录系统:本地模型可做身份验证或根本不需要登录
  • 业务逻辑API:用AI生成逻辑,不需要硬编码
  • 数据库访问层:数据本地持久化
  • 权限校验中间件:模型判断上下文直接决定动作执行
  • 模型托管平台:模型直接集成进App中,脱离服务器推理

真正留下来的“后端”,可能是:

  • 模型权重/资源的CDN式分发
  • 用户行为匿名收集的分析通道
  • 协同类App的轻量同步机制

六、未来展望:App将成为“自生、自演化”的智能体

下一代AI App 不再是“我们开发出来交付给用户”的传统模式,而是:

App像一个生物体一样,自我生成、自我适应、自我进化。

用户和App之间的边界会模糊:

  • 用户说出需求 → App结构自适应生成
  • 用户使用过程 → 模型自动学习优化
  • 用户添加知识 → App自动扩展功能

这才是真正的“AI原生App”,它不是“加了AI的传统App”,而是从一开始就以AI为操作系统思考的产物。


七、总结

“前端生成,后端消失” 不是一句口号,而是正在发生的架构革命。

它意味着:

  • 更低的开发门槛
  • 更强的隐私保障
  • 更快的AI落地速度
  • 更接近人类自然交互的体验

开发者、创业者和产品设计者都需要重新思考我们所说的“App”,甚至“操作系统”到底是什么。

未来,或许真正强大的App,不再托管在服务器,也不再用传统语言开发——而是,你用一句话就能“长”出来。

八、落地挑战:通向“前端即智能体”的现实阻力

尽管“前端生成,后端消失”愿景令人振奋,但在当前阶段,它依然面临一些实际挑战:

1. 模型大小 vs. 设备算力

  • 即便是优化后的 LLaMA 3-8B、Gemma 2B,在嵌入端侧时仍对内存和算力提出较高要求。
  • 部分模型在浏览器中仍存在启动缓慢、加载耗时的问题。

趋势对策

  • 微调小模型(Mistral 7B、Phi-2、TinyLLaMA)并做量化(INT4/INT8)。
  • 通过 LoRA + QLoRA 方式本地化用户个性。
  • 浏览器端配合 WebGPU + SIMD + WASM 多线程加速。

2. 前端存储与隐私隔离

  • 浏览器原生的 IndexedDB、LocalStorage 容量有限、权限脆弱。
  • 移动设备上如何安全、高效地持久化数据仍需权衡(尤其是合规性场景如医疗/政务)。

趋势对策

  • 使用 WebAssembly 模拟文件系统(如 WebR/WASI + SQLite + DuckDB)。
  • 移动端采用 Secure Storage + 本地向量数据库(如 Chroma 本地部署、Qdrant edge 模式)。

3. 如何维护“智能体”的一致性与演进性

  • 当前 LLM 仍缺乏稳定的行为一致性,Prompt 一变,结果可能截然不同。
  • 如果 App 的逻辑依赖 Prompt,本身就缺少“代码确定性”。

趋势对策

  • 使用 Prompt 模板 + Function Calling 构造结构化思维链(Chain of Thought)。
  • 建立小型 RAG 系统,在本地做自我检索+生成。
  • 用 DSL(领域特定语言)描述功能,由模型翻译执行。

九、工具链与生态:下一代开发者的“全新 IDE”

构建 AI 原生 App,不再是 VSCode + Node.js 的旧世界,而是围绕以下核心工具链:

方向工具/框架说明
本地模型运行OllamaMistral.cppllm.c一行命令跑起轻量模型
Web 推理Transformer.jsWebLLMLlama.cpp + WebAssembly模型直接运行在浏览器
模型微调LoRAQLoRABentoMLAxolotl个性化调教,不依赖服务器
向量检索LanceDBChromaDuckDB(本地模式)小型知识库自组织
前端 AI 接口LangChain.jsOpenAgentsAutoGen UI将模型变成“前端 API”
UI生成器GradioWebUIReplicate + Vercel用Prompt构建界面交互

未来 IDE 的核心不再是代码,而是:

  • Prompt 模块化管理
  • 模型调试与可视化
  • 意图流追踪与行为一致性测试

十、开发者:从“写代码”到“设计智能体”的迁移

这种范式转变下,开发者的核心能力也发生了本质变化:

旧技能新技能
编写 API构建 Prompt 和意图流
写业务逻辑设计“思维路径”与“反应机制”
前后端联调前端内集成模型与向量检索
数据建模知识图谱构建 + 上下文检索链
UI开发UI由模型生成,开发者定义“交互意图”

甚至于,非程序员也将成为 App 的“创造者” —— 用一句话或一个例子就能生成功能,微调模型行为。


十一、结语:拥抱一个后端终将隐退的时代

“前端生成,后端消失” 并不是一个极端,而是一个必然。

未来的应用将越来越像是用户的“共生智能体”——在本地理解、生成、记忆与进化。后端将变得越来越轻,最终隐入技术栈之下,直至被用户彻底感知不到。

开发者的身份,也正在从“功能制造者”转变为“智能体设计师”。

这将是一个全新的时代。

而我们正处在它的清晨。

相关文章:

下一代AI App架构:前端生成,后端消失

过去十年,Web 和 App 的开发范式基本稳定:前端负责交互体验,后端负责业务逻辑和数据管理。即使是“无服务架构”也只是将后端“拆散”而非“消失”。 但随着 AI 原生应用的兴起,特别是 大模型本地化、小模型部署、WebAssembly、L…...

告别过去,奔向未来

人生就是一个不断雕刻自己的过程!一路走来,我们经历过酸甜苦辣咸,迷茫过,跌倒过,懈怠过……但是,我想说这又何妨!一个成功人士的经历必定是跌跌宕宕,起起伏伏的。关键是我们要做到&a…...

AF3 Recycling机制

在 AlphaFold3中,输入数据的特征加工中生成了recycling 维度的数据,主要通过ensembled_transform_fns函数抽样得到不同的扰动的MSA、template特征等,类似于数据增强的作用。在数据集的加载和模型的训练中利用了这一维度的数据,增强了模型的稳定性和鲁棒性,避免单一预测结果…...

notepad++8.6.4安装及细节

notepad8.6.4下载安装(附安装包) 一、安装包下载1.1方法一:官网下载(点击跳转)1.2方法二:网盘链接分享8.6.4版本 二、安装过程细节2.1这里的组件建议全部勾选。点击“下一步”。2.2 勾选①:可以…...

谁该处理我的请假?——责任链模式

谁该处理我的请假?——责任链模式 一、生活中的责任链:请假审批流程二、责任链模式的核心特点三、代码实现:请假审批责任链四、工作中的实际应用场景五、框架中的经典应用六、模式本质理解 一、生活中的责任链:请假审批流程 想象…...

【NLP应用场景全解】自然语言处理如何改变世界?

自然语言处理作为人工智能的重要分支,正在加速改变各行各业。根据Statista预测,到2025年,全球NLP市场规模将达到438亿美元。本文将系统梳理NLP的主要应用场景,结合最新技术趋势,帮助你了解NLP技术的落地现状与未来发展…...

Hive 中书写SQL注意的地方

1.1 关于 DDL (1)创建带有主键约束的 Hive 表时报错。 Hive 目前还没有严格支持“主键约束”,创建带有主键约束的 HIVE 表时报了如下错误: SemanticException [Error 10326]: Invalid Constraint: syntax ENABLE/ENFORCED featu…...

Ubuntu 下 无界面环境 多进程/多线程 使用DrissionPage

使用wget “https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb” -O chrome.deb 安装chrome # !/usr/bin/python3 # -*- coding:utf-8 -*- """ author: JHC000abcgmail.com file: dp.py time: 2025/2/20 20:22 desc:wget "htt…...

Opencv计算机视觉编程攻略-第十节 估算图像之间的投影关系

目录 1. 计算图像对的基础矩阵 2. 用RANSAC 算法匹配图像 3. 计算两幅图像之间的单应矩阵 4. 检测图像中的平面目标 图像通常是由数码相机拍摄的,它通过透镜投射光线成像,是三维场景在二维平面上的投影,这表明场景和它的图像之间以及同一…...

RocketMQ 01

今天是2025/04/06 21:31 day 18 总路线请移步主页Java大纲相关文章 今天进行RocketMQ 1,2 个模块的归纳 首先是RocketMQ 的相关内容概括的思维导图 1. 核心组件 1.1 NameServer 核心功能 服务发现:作为轻量级注册中心,管理所有 Broker 的地址和路由信…...

牛客周赛———字符串

题目如下 思路&#xff08;贪心&#xff09; >和<的位置是固定不变的&#xff0c;所以先处理这两个符号&#xff0c;然后再遍历一遍检查‘Z’&#xff0c;如果不符合条件将Z的位置改变正负性使其满足条件&#xff0c;然后遍历的时候记数答案就行了&#xff0c;注意s的首…...

在Hive中,将数据从一个表查询并插入到另一个表

1. 确认目标表结构 确保目标表已存在且结构与查询结果匹配。若不存在&#xff0c;需先创建&#xff1a; CREATE TABLE target_table ( id INT, name STRING ) PARTITIONED BY (dt STRING) STORED AS ORC; 2. 选择插入方式 覆盖插入&#xff08;替换现有数据&#xff0…...

优雅实现级联选择器:CascadeSelect 类设计与实现

在现代Web开发中&#xff0c;级联选择器是一种常见的UI组件&#xff0c;它能够有效地组织和展示层级数据。本文将深入解析一个功能完善的级联选择器实现——CascadeSelect类&#xff0c;展示如何用面向对象的方式构建可复用的UI组件。 组件概述 CascadeSelect是一个二级下拉框…...

26考研 | 王道 | 数据结构 | 第五章 树

第五章 树 5.1. 树的概念 5.1.1. 树的基本定义 树:n(n>0)个节点的有限集合&#xff0c;是一种逻辑结构&#xff0c;当n0时为空树&#xff0c;且非空树满足: 有且仅有一个特定的称为根的节点当n>1时&#xff0c;其余结点可分为m (m >0) 个互不相交的有限集合&#x…...

Spring 怎么解决循环依赖问题?

Spring 循环依赖&#xff08;circular dependency&#xff09; 指的是多个 Bean 之间的相互依赖&#xff0c;比如&#xff1a; A 依赖 B&#xff0c;B 又依赖 A&#xff1b;或者 A → B → C → A 这种嵌套循环依赖。 这是一个常见又棘手的问题&#xff0c;但 Spring 是可以解…...

微软推出首款量子计算芯片Majorana 1

全球首款拓扑架构量子芯片问世&#xff0c;2025年2月20日&#xff0c;经过近20年研究&#xff0c;微软推出了首款量子计算芯片Majorana 1&#xff0c;其宣传视频如本文末尾所示。 微软表示&#xff0c;开发Majorana 1需要创造一种全新的物质状态&#xff0c;即所谓的“拓扑体”…...

OSI模型中协议数据单元(PDU)

OSI模型中协议数据单元&#xff08;PDU&#xff09; 协议数据单元&#xff08;Protocol Data Unit, PDU&#xff09;是网络通信中每一层协议处理的数据单位&#xff0c;其内容和格式由特定层的协议定义。PDU在不同OSI层次中有不同的名称和结构&#xff0c;体现了分层模型的核心…...

代码训练营day24 回溯算法

回溯算法part03 93.复原IP地址 题目链接/文章讲解&#xff1a;代码随想录 视频讲解&#xff1a;回溯算法如何分割字符串并判断是合法IP&#xff1f;| LeetCode&#xff1a;93.复原IP地址_哔哩哔哩_bilibili 本题关键在于终止条件 插入3个’.’时判断 ip地址最后一段是否…...

DP Alt Mode 与 DP协议的关系

1. 什么是 “Alt Mode”&#xff08;替代模式&#xff09;&#xff1f; Alt Mode&#xff08;Alternative Mode&#xff09; 是 USB Type-C 接口 的扩展协议机制&#xff0c;允许通过 物理接口复用&#xff08;Pin Reuse&#xff09; 将USB-C接口动态切换为其他协议&#xff0…...

【欧拉筛】哥德巴赫猜想题解

哥德巴赫猜想题解 题目传送门 1292. 哥德巴赫猜想 一、题目描述 哥德巴赫猜想指出&#xff1a;任意一个大于4的偶数都可以拆成两个奇素数之和。给定多个偶数(6 ≤ n < 10^6)&#xff0c;验证它们是否符合这个猜想。对于每个偶数&#xff0c;输出其素数分解中两数差最大的…...

A*算法详解及Python实现

一、什么是A*算法&#xff1f; A*&#xff08;读作"A-star"&#xff09;算法是一种广泛使用的路径查找和图形遍历算法&#xff0c;它结合了Dijkstra算法的完备性和贪婪最佳优先搜索的高效性。A*算法通过使用启发式函数来估算从当前节点到目标节点的成本&#xff0c;…...

【C++】第九节—string类(中)——详解+代码示例

hello&#xff01; 云边有个稻草人-CSDN博客 C_云边有个稻草人的博客-CSDN博客 菜鸡进化中。。。 目录 【补充】 二、string类里面的常用接口 1.resize 2.insert 3.assign 4.erase 5.replacefind 6.c_str 7.rfindsubstr 8.find_first_of、find_last_of、find_first…...

vite.config.js常用配置

vite 是一个基于 Vue3 单文件组件的非打包开发服务器&#xff0c;它做到了本地快速开发启动&#xff1a; 快速的冷启动&#xff0c;不需要等待打包操作&#xff1b; 即时的热模块更新&#xff0c;替换性能和模块数量的解耦让更新飞起&#xff1b; 真正的按需编译&#xff0c;不…...

【C++11(下)】—— 我与C++的不解之缘(三十二)

前言 随着 C11 的引入&#xff0c;现代 C 语言在语法层面上变得更加灵活、简洁。其中最受欢迎的新特性之一就是 lambda 表达式&#xff08;Lambda Expression&#xff09;&#xff0c;它让我们可以在函数内部直接定义匿名函数。配合 std::function 包装器 使用&#xff0c;可以…...

李臻20242817_安全文件传输系统项目报告_第6周

安全文件传输系统项目报告&#xff08;第 1 周&#xff09; 1. 代码链接 Gitee 仓库地址&#xff1a;https://gitee.com/li-zhen1215/homework/tree/master/Secure-file 代码结构说明&#xff1a; project-root/├── src/ # 源代码目录│ ├── main.c # 主程序入口│ ├…...

使用SymPy求解矩阵微分方程

引言 在数学、物理、工程等领域,微分方程常常被用来描述系统的变化和动态过程。对于多变量系统或者多方程系统,矩阵微分方程是非常常见的,它可以用来描述如电路、控制系统、振动系统等复杂的动态行为。今天,我们将通过Python 中的 SymPy 库来求解矩阵微分方程,帮助大家轻…...

Flutter之用户输入网络数据缓存

目录&#xff1a; 1、处理用户输入1.1、按钮1.2、文本1.3、富文本1.4、TextField1.5、Form 2、复选框、Switch 和 Radio2.1、复选框2.2、Switch2.3、Radio 3、选择日期或时间4、滑动5、网络和数据6、本地缓存6.1、在本地内存中缓存数据 7、web端和Flutter样式控制对比7.1、文本…...

华为IP(4)

VRRP&#xff08;虚拟路由冗余协议&#xff09; 前言&#xff1a; 局域网中的用户终端通常采用配置一个默认网关的形式访问外部网络&#xff0c;如果默认网关设备发生故障&#xff0c;那么所有用户终端访问外部网络的流量将会中断。可以通过部署多个网关的方式来解决单点故障…...

蓝桥杯刷题周计划(第四周)

目录 前言题目一题目代码题解分析 题目二题目代码题解分析 题目三题目代码题解分析 题目四题目代码题解分析 题目五题目代码题解分析 题目六题目代码题解分析 题目七题目代码题解分析 题目八题目代码题解分析 题目九题目代码题解分析 题目十题目代码题解分析题目代码题解分析 题…...

华为网路设备学习-17

目录 一、加密算法 二、验证算法 三、IPsec协议 1.IKE协议&#xff08;密钥交换协议&#xff09; ①‌ISAKMP&#xff08;Internet Security Association and Key Management Protocol&#xff09;互联网安全关联和密钥管理协议 ②安全关联&#xff08;SA&#xff09; ③…...

【动态规划】深入动态规划 非连续子序列问题

文章目录 前言例题一、最长递增子序列二、摆动序列三、最长递增子序列的个数四、最长数对链五、最长定差子序列六、最长的斐波那契子序列的长度七、最长等差数列八、等差数列划分II - 子序列 结语 前言 什么是动态规划中的非连续子序列问题&#xff1f; 动态规划中的非连续子序…...

灵魂拷问,指针为什么是C语言的灵魂?

目录 | 引 言 | 内存操作 | 构造复杂的数据结构 | 底层硬件交互 | 指针的陷阱 | 文 末 | 引 言 指针是C语言的灵魂&#xff01; 这句话是不是很耳熟&#xff1f;但为什么这么说&#xff0c;你知道吗&#xff1f; 本篇小文就从内存、数据结构、底层硬件交互这三个维度来…...

Node.js自定义中间件

目录 Node.js 自定义中间件详细介绍 1. 目录结构 2. 什么是自定义中间件&#xff1f; 3. 代码实现 1. 自定义日志中间件&#xff08;记录请求信息&#xff09; 2. 自定义身份验证中间件&#xff08;校验用户权限&#xff09; 3. 自定义请求时间中间件&#xff08;记录请…...

Qt 音乐播放器项目

具体代码见&#xff1a;https://gitee.com/Suinnnnnn/MusicPlayer 文章目录 0. 预备1. 界面1.1 各部位长度1.2 ui文件1.3 窗口前置设置1.4 设置QSS 2. 自定义控件2.1 按钮2.2 推荐页面2.3 CommonPage2.4 滑杆 3. 音乐管理4. 歌词界面4.1 ui文件4.2 LrcPage.h文件 5. 音乐播放控…...

初识数据结构——Java集合框架解析:List与ArrayList的完美结合

&#x1f4da; Java集合框架解析&#xff1a;List与ArrayList的完美结合 &#x1f31f; 前言&#xff1a;为什么我们需要List和ArrayList&#xff1f; 在日常开发中&#xff0c;我们经常需要处理一组数据。想象一下&#xff0c;如果你要管理一个班级的学生名单&#xff0c;或…...

LightRAG实战:轻松构建知识图谱,破解传统RAG多跳推理难题

作者&#xff1a;后端小肥肠 &#x1f34a; 有疑问可私信或评论区联系我。 &#x1f951; 创作不易未经允许严禁转载。 姊妹篇&#xff1a; 2025防失业预警&#xff1a;不会用DeepSeek-RAG建知识库的人正在被淘汰_deepseek-embedding-CSDN博客 从PDF到精准答案&#xff1a;Coze…...

Hyperlane框架全面详解与应用指南 [特殊字符][特殊字符][特殊字符]

Hyperlane框架全面详解与应用指南 &#x1f680;&#x1f680;&#x1f680; &#x1f4da; 前言 欢迎来到Hyperlane框架的全面详解与应用指南&#xff01;&#x1f389;&#x1f389;&#x1f389; 本文档旨在为开发者提供一个全面、详尽的Hyperlane框架使用指南&#xff0c…...

使用LVS的 NAT 模式实现 3 台RS的轮询访问

题目 使用LVS的 NAT 模式实现 3 台RS的轮询访问。IP地址和主机自己规划。 -i— turn&#xff0c;-g——DR模式&#xff0c;-m——NAT模式 节点规划 仅主机网段&#xff1a;192.168.216.0/24 NAT网段&#xff1a;192.168.88.0/24 主机角色系统网络ipclientclientredhat9.5仅…...

BGP路由协议之属性4

MED 多出口鉴别器 可选非过渡属性 EBGP 的邻居 Cost 开销值&#xff0c;控制如何进入 AS。越小越优。继承 IGP 的开销值&#xff0c;默认 0 MED(Multi-Exit Discriminator&#xff0c;多出口鉴别器)是可选非过属性&#xff0c;是一种度量值用于向外部对等体指出进入本 AS 的首…...

数据库的操作

1.创建数据库 CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [,create_specification] ...]create_specification: [DEFAULT] CHARACTER SET charset_name [DEFAULT] COLLATE collation_name 大写的表示关键字。[]是可选项。CHARACTER SET&#xff1a;指定…...

【愚公系列】《高效使用DeepSeek》055-可靠性评估与提升

🌟【技术大咖愚公搬代码:全栈专家的成长之路,你关注的宝藏博主在这里!】🌟 📣开发者圈持续输出高质量干货的"愚公精神"践行者——全网百万开发者都在追更的顶级技术博主! 👉 江湖人称"愚公搬代码",用七年如一日的精神深耕技术领域,以"…...

记录clickhouse记录一次性能优化,从60s到1s

文章目录 问题表结构类似如下分析第一步调整第一步观察多磁盘读继续观察sql 问题 一个查询接口&#xff0c;涉及多个clickhouse 查询&#xff0c;查询用时一下变成要60s 表结构类似如下 CREATE TABLE demo.test_local (id UUID,date DateTime,type String ) ENGINE Replic…...

二叉树的层序遍历

102. Binary Tree Level Order Traversal 广度优先搜索 将每个结点的层号记录下。 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* …...

嵌入式硬件篇---TOF陀螺仪SPI液晶屏

文章目录 前言1. TOF传感器&#xff08;Time of Flight&#xff09;原理STM32使用方法硬件连接SDASCLVCC\GND 软件配置初始化I2C外设库函数驱动&#xff1a;读取数据 2. 陀螺仪&#xff08;如MPU6050&#xff09;原理STM32使用方法硬件连接SDA/SCLINTVCC/GND 软件配置初始化I2C…...

OpenCV 在树莓派上进行实时人脸检测

这段 Python 代码借助 OpenCV 库实现了在树莓派上进行实时人脸检测的功能。它会开启摄像头捕获视频帧&#xff0c;在每一帧里检测人脸并以矩形框标记出来&#xff0c;同时在画面上显示帧率&#xff08;FPS&#xff09;。 依赖库 cv2&#xff1a;OpenCV 库&#xff0c;用于计算…...

55.跳跃游戏

​​题目来源&#xff1a; leetcode题目&#xff0c;网址&#xff1a;55. 跳跃游戏 - 力扣&#xff08;LeetCode&#xff09; 解题思路&#xff1a; 遍历数组&#xff0c;若当前节点可达&#xff0c;更新可到达的最远距离&#xff0c;否则返回false。若可遍历整个数组&#xf…...

awk 实现listagg ,count 功能

awk命令实现分组统计 测试数据 ABC a1 ABC a2 ABC a3 ABD c1 ABD c2 分组统计 abc a1,a2,a3 3 abd c1,c2 awk 命令 awk {arr[$1]arr[$1] ? arr[$1] "," $2 : $2; count[$1]} END{for (i in arr) print tolower(i), arr[i], count[i]} group_…...

瑞萨RA4M2使用心得-GPIO输出

目录 一、新建项目 二、图形化开发 1.初始化IO 2.界面介绍 3.代码编写 4.所有内部函数的封装位置 5.LED闪烁函数编写 三.debug运行 总结 环境&#xff1a; 开发板&#xff1a;RA-Eco-RA4M2-100PIN-V1.0 IDE&#xff1a;e2 studio 一、新建项目 正常操作&#xff0c;下…...

uniapp微信小程序引入vant组件库

1、首先要有uniapp项目&#xff0c;根据vant官方文档使用yarn或npm安装依赖&#xff1a; 1、 yarn init 或 npm init2、 # 通过 npm 安装npm i vant/weapp -S --production# 通过 yarn 安装yarn add vant/weapp --production# 安装 0.x 版本npm i vant-weapp -S --production …...

COZE通关指南:工作流与插件开发

前言 本文隶属于专栏《AI Agent 通关指南》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见《AI Agent 通关指南》 正文 1. 平台基础介绍 🌟 1.1 COZE平台概述 COZE平台(coze.cn)是一个强大的AI应用开发平台…...