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

5.12 note

Leetcode

图 邻接矩阵的dfs遍历

 class Solution {
private:
    vector<vector<int>> paths;
    vector<int> path;


    void dfs(vector<vector<int>>& graph, int node) {
        // 到n - 1结点了保存
        if (node == graph.size() - 1) {
            paths.push_back(path);
            return;
        }
        // 遍历每条能走的路
        for (int i = 0; i < graph[node].size(); ++i) {
            path.push_back(graph[node][i]);
            dfs(graph, graph[node][i]);
            // 回溯
            path.pop_back();
        }
    }


public:
    vector<vector<int>> allPathsSourceTarget(vector<vector<int>>& graph) {
        path.push_back(0);
        // 起点能走的路
        for (int i = 0; i < graph[0].size(); ++i) {
            path.push_back(graph[0][i]);
            dfs(graph, graph[0][i]);
            path.pop_back();        
        }
        return paths;
    }
};

 

 

dfs板子

class Solution {
    /*
输入:n = 3
输出:["((()))","(()())","(())()","()(())","()()()"]
    */
    
    vector<string> ret;
    string path;
    int _n=0;
    
public:
    vector<string> generateParenthesis(int n) {
        _n=n;
        dfs(0,0,0);
        
        return ret;
    }
    
    void dfs(int i,int l,int r)
    {
        if(r==_n)
        {
            ret.push_back(path);
            return;
        }
        
        if(l<_n)
        {
            path+="(";
            dfs(i+1,l+1,r);
            path.pop_back();
        }
        if(r<l)
        {
            path+=")";
            dfs(i+1,l,r+1);
            path.pop_back();
        }
    }
};

 

bool check全排列剪枝

前文回顾: 【[Lc_3 回溯] 决策树 | 全排列 | 子集 - CSDN App】https://blog.csdn.net/2301_80171004/article/details/146527379?sharetype=blog&shareId=146527379&sharerefer=APP&sharesource=2301_80171004&sharefrom=link

class Solution {
    vector<vector<int>> ret;
    bool check[7]={false};
    vector<int> path;
 
public:
    vector<vector<int>> permute(vector<int>& nums) 
    {
        dfs(nums);
        return ret;
    }
 
    void dfs(vector<int>& nums)
    {
        if(path.size()==nums.size())
        {
            ret.push_back(path);
            return;
        }
 
        for(int i=0;i<nums.size();i++)
        {
            if(check[i]==false)  //剪枝
        {
            path.push_back(nums[i]);
            check[i]=true;//借助 全局变量标记

 
            dfs(nums); //决策树 深度遍历
 
            path.pop_back();//尾删
            check[i]=false;
        }
        }
    }
};

 

 

 

string resize reserve

reverse是逆转

1. 使用  resize  方法: resize  函数可以改变字符串的长度,如果新长度大于原来的长度,会在字符串末尾填充指定字符(默认为  '\0' );如果新长度小于原来的长度,会截断字符串。
 
cpp   
std::string str = "hello";
str.resize(10, 'x'); // 把字符串长度调整为 10,后面填充 'x'
 
 
1. 使用  reserve  方法: reserve  函数预分配一定大小的空间,但不改变字符串的长度,主要用于提前知道字符串大概的大小,减少后续扩容的次数,提高性能。
 
cpp   
std::string str;
str.reserve(100); // 预分配能容纳 100 个字符的空间

lambda表达式实现DFS决策的写法

class Solution {

public:

    vector<string> validStrings(int n) {

        vector<string> ans;

        string path(n, 0);

 

        auto dfs = [&](auto&& dfs, int i) -> void 

        {

            if (i == n) 

            {

                ans.push_back(path); 

   // 注意这里复制了一份 path,需要 O(n) 时间

                return;

            }

 

            // 填 1

            path[i] = '1';

            dfs(dfs, i + 1);

 

            // 填 0

       if (i == 0 || path[i - 1] == '1') 

            {

                path[i] = '0'; // 直接覆盖

                dfs(dfs, i + 1);

            }

        };

 

        dfs(dfs, 0);

        return ans;

    }

};
 
1. 右值引用  dfs  参数传递的设计原因:
- 在这个 Lambda 表达式  auto dfs = [&](auto&& dfs, int i) -> void  中, auto&& dfs  这种写法是为了实现递归调用。 auto&&  是一种通用引用(也叫转发引用),在这里它被用来接收函数自身(因为递归时需要调用自身)。
- 使用  auto&&  来接收  dfs  有两个好处。一方面,它可以接收左值(也就是已经存在的对象),因为递归调用时传递的  dfs  是一个已经定义好的函数对象,是左值。另一方面,它也可以完美处理一些更复杂的场景(比如在模板函数中传递函数对象等),具有更好的通用性。
- 而右值引用  &&  在这里的作用是,当调用递归函数时,它能高效地处理函数对象的传递,避免不必要的复制操作,提高程序的性能。因为  dfs  这个函数对象本身可能包含一些状态(比如捕获的外部变量  ans  和  path  ),如果每次递归调用都进行复制,会消耗额外的时间和空间。使用右值引用  &&  就可以直接传递这个函数对象的引用,而不是复制它,这样在递归调用时就更加高效了。
2.  dfs  开始执行的时机:
- 在定义完  dfs  这个 Lambda 表达式之后,代码中  dfs(dfs, 0);  这一行开始执行  dfs  函数。
- 当程序执行到  validStrings  函数的  dfs(dfs, 0);  时, dfs  函数开始第一次执行,从字符串的索引  0  位置开始进行处理。因为  0  作为参数传递给  dfs  函数的  i  参数,所以会从字符串的第一个字符开始尝试不同的取值(先设为  1  进行递归,然后在满足条件时设为  0  进行递归),进而通过递归不断地探索后续位置的字符组合情况,直到满足递归终止条件( i == n  )。

 

 

 

在  sort  的比较函数中, a  和  b  应该使用  const  引用,避免不必要的拷贝。

例如

sort(points.begin(), points.end(), [](const vector<int>& a, const vector<int>& b) {

            return a[0] < b[0];

        });

 

 

相关文章:

5.12 note

Leetcode 图 邻接矩阵的dfs遍历 class Solution { private: vector<vector<int>> paths; vector<int> path; void dfs(vector<vector<int>>& graph, int node) { // 到n - 1结点了保存 if (node graph.size() - 1)…...

Java Spring Boot项目目录规范示例

以下是一个典型的 Java Spring Boot 项目目录结构规范示例&#xff0c;结合了分层架构和模块化设计的最佳实践&#xff1a; text 复制 下载 src/ ├── main/ │ ├── java/ │ │ └── com/ │ │ └── example/ │ │ └── myapp/ │…...

记录裁员后的半年前端求职经历

普通的人生终起波澜 去年下半年应该算是我毕业以来发生人生变故最多的一段时间。 先是 7 月份的时候发作了一次急性痛风&#xff0c;一个人在厦门&#xff0c;坐在床上路都走不了&#xff0c;那时候真的好想旁边能有个人能扶我去医院&#xff0c;真的是感受到 10 级的孤独。尝…...

学习黑客BitLocker与TPM详解

BitLocker与TPM详解&#xff1a;数据加密的坚固堡垒 &#x1f510;&#x1f6e1;️ 学习目标&#xff1a;掌握BitLocker加密原理、TPM工作机制及其配置方法&#xff0c;提升数据安全防护水平 1. 数据保护的最后防线&#xff1a;BitLocker与TPM简介 &#x1f4bc; 在当今世界&a…...

综合实验二之grub2密文加密

实验二、grub2密文加密 Grub2 密文加密的作用&#xff1a; 保护系统安全&#xff1a; 防止未经授权的用户在系统启动时进入 Grub2 菜单&#xff0c;通过修改启动参数来绕过系统的安全机制&#xff0c;进而访问或篡改系统文件和数据。例如&#xff0c;恶意用户可能试图通过修改启…...

【Java学习】Lambda表达式

目录 一、函数式匿名 1.环境确定 2.Lambda部分实现 二、函数式书写 Lambda表达式&#xff1a; 三、函数式接口 1.Consumer行为接口 1.1Lambda匿名实现(核心) 1.2创建使用全过程 1.2.1创建匿名子类实例 1.2.1.1环境确定 1.2.1.2匿名实现 1.2.2向上转型 1.2.3Lamb…...

精益数据分析(55/126):双边市场模式的挑战、策略与创业阶段关联

精益数据分析&#xff08;55/126&#xff09;&#xff1a;双边市场模式的挑战、策略与创业阶段关联 在创业和数据分析的学习旅程中&#xff0c;我们持续探索不同商业模式的奥秘。今天&#xff0c;依旧怀揣着与大家共同进步的想法&#xff0c;深入研读《精益数据分析》&#xf…...

人工智能100问☞第21问:神经网络如何模拟人脑结构?

目录 一、通俗解释 二、专业解析 三、权威参考 神经网络通过​​分层连接的人工神经元​​模拟人脑结构,其中输入层接收信号(模拟树突接收信息),隐藏层通过权重调整(模拟突触可塑性)进行特征提取,输出层生成结果(类似轴突传递信号),并利用反向传播机制(类比生物神…...

Vue 3 实现转盘抽奖效果

&#x1f3a1; 使用 Vue 3 实现转盘抽奖效果 在移动端或营销活动中&#xff0c;转盘抽奖是一种非常常见的互动方式。本文基于 Vue 3 TypeScript 实现一个视觉炫酷、逻辑完整的转盘抽奖功能&#xff0c;并支持「指定奖品必中」的逻辑。 iShot_2025-05-12_11.31.27 &#x1f9f…...

Python 处理图像并生成 JSONL 元数据文件 - 灵活text版本

Python 处理图像并生成 JSONL 元数据文件 - 灵活text版本 flyfish import os import json import argparse from PIL import Image from xpinyin import Pinyinclass ImageConverter:def __init__(self, src_folder, dest_folder, target_size1024, output_format"JPEG&…...

LeRobot 项目部署运行逻辑(七)—— ACT 在 Mobile ALOHA 训练与部署

全部流程为&#xff1a;硬件配置 -> 环境安装 -> 遥操作数据采集 -> 数据集可视化 -> 策略训练 -> 策略评估 在之前的笔记中已经完成了绝大部分&#xff0c;最后再记录一下最后的训练部署&#xff0c;算是最简单的部分了 目录 1 ACT 训练 2 ALOHA 部署 3 更…...

【NextPilot日志移植】ULog

&#x1f4da; ULog 日志系统详解 关键词&#xff1a;结构化日志、飞行数据记录、自描述格式、嵌入式系统、PX4、NextPilot &#x1f9e0; 一、ULog 是什么&#xff1f; ULog&#xff08;Universal Log&#xff09; 是 PX4/NextPilot 飞控系统中使用的结构化日志格式&#xff…...

扩展:React 项目执行 yarn eject 后的 scripts 目录结构详解

扩展&#xff1a;React 项目执行 yarn eject 后的 scripts 目录结构详解 什么是 yarn eject&#xff1f;scripts 目录结构与说明各脚本说明说明 什么是 yarn eject&#xff1f; yarn eject 是 Create React App&#xff08;简称 CRA&#xff09;提供的一条命令&#xff0c;用于…...

Android11.0 framework第三方无源码APP读写断电后数据丢失问题解决

1.前言 在11.0中rom定制化开发中,在某些产品开发中,在某些情况下在App用FileOutputStream读写完毕后,突然断电 会出现写完的数据丢失的问题,接下来就需要分析下关于使用FileOutputStream读写数据的相关流程,来实现相关 功能 2.framework第三方无源码APP读写断电后数据丢…...

多样本整合Banksy空间聚类分析(Visium HD, Xenium, CosMx)

在空间数据分析中&#xff0c;传统的单细胞聚类算法&#xff0c;例如Seurat和Scanpy中的lovain和leiden等聚类算法&#xff0c;通常在处理空间数据时忽略了空间信息。然而&#xff0c;由于细胞状态受其周围细胞的影响&#xff0c;将转录组数据与细胞的空间信息结合起来进行聚类…...

【2025最新】Vm虚拟机中直接使用Ubuntu 免安装过程直接使用教程与下载

Ubuntu 是一个基于 Debian 的自由开源 Linux 操作系统&#xff0c;面向桌面、服务器和云计算平台广泛应用。 由英国公司 Canonical Ltd. 维护和发布&#xff0c;Ubuntu 强调易用性、安全性和稳定性&#xff0c;适合个人用户、开发者以及企业部署使用。 Ubuntu 默认使用 GNOME …...

【Leetcode】系列之206反转链表

反转链表 题目描述解决思路过程示例代码示例结果展示 总结 题目描述 给你单链表的头节点 head &#xff0c;请你反转链表&#xff0c;并返回反转后的链表。 解决思路 next_node:临时存放当前指针指向下一个指针的变量&#xff1b;pre:存放空指针&#xff1b;curr&#xff1…...

图灵爬虫练习平台第十九题js逆向

题十九&#xff1a;法外狂徒 该题适合JS逆向学习的小伙伴练习&#xff0c;模拟国内某大型网站 数据加密设计&#xff0c;给大家练练手 还是先f12看看是什么加密&#xff0c;发现是 返回数据最后加密了 还是先堆栈分析一下&#xff0c;直接点进去 打上断点分析一下&#xff0c;…...

Ubuntu 22初始配置(root、ssh)

1.设置root密码 并启用root用户 sudo passwd root sudo passwd -u root 2.安装ssh apt install openssh-server systemctl enable --now ssh 3.支持root通过ssh登录 vim /etc/ssh/sshd_config 是sshd_config(服务端) 不是ssh_config&#xff08;客户端&#xff09; 最后增加一…...

css3响应式布局

css3响应式布局 响应式设计是现代网页开发的重要组成部分&#xff0c;它确保网页在不同的屏幕尺寸上都有良好的显示效果。 在CSS中&#xff0c;实现响应式布局是一种常用的技术&#xff0c;旨在使网页能够根据用户的设备和屏幕尺寸自动调整其布局和样式。这种技术对于确保网站…...

【DeepSeek问答记录】请结合实例,讲解一下pytorch的DataLoader的使用方法

PyTorch的DataLoader是数据加载的核心工具&#xff0c;可高效处理批量数据、并行加载和自动打乱。以下是一个结合实例的分步讲解&#xff1a; 1. 基础使用流程 import torch from torch.utils.data import Dataset, DataLoader# 自定义数据集类&#xff08;必须实现__len__和…...

Codeforces Round 1024 (Div. 2)(A-D)

题面链接&#xff1a;Dashboard - Codeforces Round 1024 (Div. 2) - Codeforces A. Dinner Time 思路 一共n个数被分成n/p个区间&#xff0c;每个区间内的和是q&#xff0c;如果还有除构成区间外剩余的数那么就一定能构造&#xff0c;如果没有剩余就看所有区间的和是否等于…...

大语言模型强化学习双强:OpenRLHF与verl技术解析

引言 随着大语言模型&#xff08;LLM&#xff09;参数规模突破千亿级&#xff0c;如何高效完成基于人类反馈的强化学习&#xff08;RLHF&#xff09;训练成为行业焦点。OpenRLHF与verl作为开源社区两大标杆框架&#xff0c;分别以Ray分布式架构和HybridFlow混合控制器为核心&a…...

ARM Cortex-M3内核详解

目录 一、ARM Cortex-M3内核基本介绍 &#xff08;一&#xff09;基本介绍 &#xff08;二&#xff09;主要组成部分 &#xff08;三&#xff09;调试系统 二、ARM Cortex-M3内核的内核架构 三、ARM Cortex-M3内核的寄存器 四、ARM Cortex-M3内核的存储结构 五、ARM Co…...

关于高并发GIS数据处理的一点经验分享

1、背景介绍 笔者过去几年在参与某个大型央企的项目开发过程中,遇到了十分棘手的难题。其与我们平常接触的项目性质完全不同。在一般的项目中,客户一般只要求我们能够通过桌面软件对原始数据进行加工处理,将各类地理信息数据加工处理成地图/场景和工作空间,然后再将工作空…...

vue3+flask+sqlite前后端项目实战

基础环境安装 pycharm 下载地址&#xff1a; https://www.jetbrains.com/zh-cn/pycharm/download/?sectionwindows vscode 下载地址 https://code.visualstudio.com/docs/?dvwin64user python 下载地址 https://www.python.org/downloads/windows/ Node.js&#xff08;含npm…...

支付宝API-SKD-GO版

前言 支付宝api的sdk没有提供go版&#xff0c;这里自己封装了一个go版的sdk&#xff0c;有需要的朋友可以自取使用 支付宝 AliPay SDK for Go, 集成简单&#xff0c;功能完善&#xff0c;持续更新&#xff0c;支持公钥证书和普通公钥进行签名和验签。 安装 go get github.c…...

uniapp(微信小程序)>关于父子组件的样式传递问题(自定义组件样式穿透)

由于"微信小程序"存在【样式隔离机制】&#xff0c;且默认设置为isolated(启用样式隔离)&#xff0c;因此这里给出以下两种解决方案&#xff1a; 注意: 这2种方案父子组件<style>标签不能添加"scoped" 1.CSS变量穿透&#xff08;推荐: 此方案不受样…...

AI时代还需要目视解译吗?——目视解译详解

在遥感技术迅猛发展的今天&#xff0c;尽管计算机自动解译算法层出不穷&#xff0c;目视解译仍然保持着其基础性和权威性的地位。作为遥感信息提取的"黄金标准"&#xff0c;目视解译凭借人类认知系统的独特优势&#xff0c;在多个专业领域持续发挥着不可替代的作用。…...

苹果电脑笔记本macos Mac安装mixly 米思齐软件详细指南

一、下载安装包 二、安装 1、解压下载的文件&#xff0c;然后将解压后文件夹中的中文名称部分删掉只保留英文名称&#xff0c;例如&#xff1a;mixly2.0-mac 2、将mixly2.0-mac文件夹移动到当前用户的Documents路径下&#xff0c;注意路径中不要有中文。 3、进入mixly2.0-mac文…...

slackware系统详解

Slackware 是最古老的活跃维护的 Linux 发行版之一&#xff0c;由 Patrick Volkerding 于 1993 年创建。它以简洁性、稳定性和遵循 Unix 哲学为核心理念&#xff0c;适合追求高度控制和手动配置的用户。以下是 Slackware 的详细介绍&#xff1a; 1. 核心特点 简洁性 (Simplici…...

力扣210(拓扑排序)

210. 课程表 II - 力扣&#xff08;LeetCode&#xff09; 这是一道拓扑排序的模板题。简单来说&#xff0c;给出一个有向图&#xff0c;把这个有向图转成线性的排序就叫拓扑排序。如果有向图中有环就没有办法进行拓扑排序了。因此&#xff0c;拓扑排序也是图论中判断有向无环图…...

Promise/A+ 规范中文解读

一、简介 Promise/A 是一个开放、健全且通用的JavaScript Promise标准&#xff0c;由开发者制定并供开发者参考。其核心目标是定义then方法的行为&#xff0c;确保不同Promise实现的互操作性。规范聚焦于异步操作的最终结果交互机制&#xff0c;而非Promise的创建、解决或拒绝…...

多媒体预研

主要包含h265 av1 等各种 多媒体的具体应用 svac_plugin ZLMediaKit/ext-codec at master cyf88/ZLMediaKit D:\java\xiachu\otherzlm\ZLMediaKit> sip-client GB28181-Service/SipClient at master Washington-DC/GB28181-Service yolo Jackson-Tan/wvp_pro_yolo: 小…...

动态网站 LNMP

一、名词解释&#xff1a; LNMP&#xff1a; L : 代表 Linux 操作系统&#xff0c;为网站提供了可靠的运行环境N : 代表 Nginx&#xff0c;它是一款轻量级的高性能 Web 服务器&#xff0c;能够快速处理大量并 发连接&#xff0c;有效提升网站的访问速度和性能 M : 代表…...

【Leetcode刷题随笔】349. 两个数组的交集

1. 题目描述 给定两个数组nums1和nums2&#xff0c;返回它们的交集。输出结果中的每个元素一定是唯一的。我们可以不考虑输出结果的顺序。 示例1: 输入:nums1 [1,2,2,1], nums2 [2,2] 输出&#xff1a;[2] 题目条件&#xff1a; 1 < nums1.length, nums2.length < 10…...

如何优雅的使用CMake中的FindPkgConfig模块

背景 如果你遇到下面的场景&#xff0c;那么FindPkgConfig模块可以用来解决我们引用上游库的问题。 上游库没有提供CMake的配置文件。CMake没有提供相应的查找模块&#xff0c;即Find<PackageName>.cmake的文件。上游库提供了pkg-config使用的.pc文件。 如果上面三个条…...

Docker Volumes

Docker Volumes 是 Docker 提供的一种机制&#xff0c;用于持久化存储容器数据。与容器的生命周期不同&#xff0c;Volumes 可以独立存在&#xff0c;即使容器被删除&#xff0c;数据仍然保留。以下是关于 Docker Volumes 的详细说明&#xff1a; 1. 为什么需要 Volumes&#…...

[原创](现代Delphi 12指南):[macOS 64bit App开发]: 如何获取当前用户主目录(即:~波浪符号目录)?

[作者] 常用网名: 猪头三 出生日期: 1981.XX.XX 企鹅交流: 643439947 个人网站: 80x86汇编小站 编程生涯: 2001年~至今[共24年] 职业生涯: 22年 开发语言: C/C++、80x86ASM、Object Pascal、Objective-C、C#、R、Python、PHP、Perl、 开发工具: Visual Studio、Delphi、XCode、…...

day23 机器学习管道 Pipeline

在机器学习中&#xff0c;数据预处理、特征提取、模型训练和评估等步骤通常是按顺序执行的。为了更高效地管理和复用这些步骤&#xff0c;我们可以使用 Pipeline&#xff08;管道&#xff09;来构建一个完整的机器学习流水线。本文将详细介绍 Pipeline 的基础概念&#xff0c;并…...

The Graph:区块链数据索引的技术架构与创新实践

作为Web3生态的核心基础设施&#xff0c;The Graph通过去中心化索引协议重塑了链上数据访问的范式。其技术设计不仅解决了传统区块链数据查询的效率瓶颈&#xff0c;还通过经济模型与多链兼容性构建了一个开放的开发者生态。本文从技术角度解析其架构、机制及创新实践。 一、技…...

nginx配置sse流传输问题:直到所有内容返回后才往下传输

一、禁用缓冲&#xff08;如实时流传输&#xff09;&#xff1a; location /stream {proxy_buffering off; } 二、开启分块传输 location /your-path {proxy_chunked_transfer_encoding on; # 显式启用分块传输&#xff08;默认已启用&#xff09; }...

使用Daemonset部署日志收集守护进程

1.DaemonSet简介&#xff1a; 在Kubernetes&#xff08;简称k8s&#xff09;中&#xff0c;DaemonSet是一种控制器&#xff0c;用于确保集群中的每个&#xff08;或部分&#xff09;节点运行一个指定的Pod副本。DaemonSet非常适合需要全局部署、节点级运行的服务&#xff0c;如…...

在Mac环境下搭建Docker环境的全攻略

在Mac环境下搭建Docker环境的全攻略 在现代软件开发中&#xff0c;Docker已经成为不可或缺的工具之一。它不仅简化了应用的部署和管理&#xff0c;还极大地提升了开发效率。然而&#xff0c;在某些公司环境中&#xff0c;桌面版的Docker可能会被禁用&#xff0c;这给开发工作带…...

Go 语言 slice(切片) 的使用

序言 在许多开发语言中&#xff0c;动态数组是必不可少的一个组成部分。在实际的开发中很少会使用到数组&#xff0c;因为对于数组的大小大多数情况下我们是不能事先就确定好的&#xff0c;所以他不够灵活。动态数组通过提供自动扩容的机制&#xff0c;极大地提升了开发效率。这…...

C++ string比较、string随机访问、string字符插入、string数据删除

string的字符串进行比较&#xff0c;代码见下。 #include<iostream>using namespace std;int main() {// 1 comparestring s1 "aab";string t11 "aab";int r11 s1.compare(t11);cout << "1: " << r11 << endl;strin…...

web 自动化之 Unittest 应用:测试报告装饰器断言

文章目录 一、常见的第三方库结合 unittest 生产 html 格式测试报告1、HtmlTestRunner2、BeatifulReport 二、装饰器 unittest.skip 强制跳过&条件跳过三、unittest的常用断言方法 一、常见的第三方库结合 unittest 生产 html 格式测试报告 1、HtmlTestRunner 官网下载 …...

前端基础之《Vue(16)—Vue脚手架介绍》

一、脚手架环境 1、推荐windows10 Node vue/cli(webpack) 2、测试node安装成功 node -v npm -v 3、什么是脚手架 Vue CLI&#xff1a;CLI就是脚手架的意思 脚手架生成一套模板&#xff08;入口文件、配置文件、目录结构&#xff09; 4、常用的包管理器 npm&#xff1a;no…...

MySQL 事务(一)

文章目录 CURD不加控制&#xff0c;会有什么问题CURD满足什么属性&#xff0c;能解决上述问题&#xff1f;什么是事务为什么要有事务事务的版本支持了解事务的提交方式 事务常见操作方式研究并发场景事务的正常操作事务的非正常情况的案例结论事务操作的注意事项 CURD不加控制&…...

Dsp38335利用Bootloader实现在线升级的技术原理

1. Bootloader概述 Bootloader&#xff08;引导加载程序&#xff09;是嵌入式系统中负责在设备启动时加载和启动主程序的代码。它通常在系统的闪存或其他非易失性存储器中&#xff0c;并在系统上电时首先执行。Bootloader不仅完成启动操作&#xff0c;还能够提供后续的程序升级…...