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

LeetCode刷题 -- 分治快排

目录

  • 颜色分类
    • 题目解析
    • 算法原理
    • 代码
  • 排序数组
    • 题目解析
    • 算法原理
    • 代码
  • 数组中第K个最大元素
    • 题目解析
    • 算法原理
    • 代码
  • LCR 159. 库存管理 III
    • 题目解析
    • 算法原理
    • 代码

颜色分类

题目链接

题目解析

数组分为三块

在这里插入图片描述

算法原理

1.如果nums[i] == 0,++left, i++下标对应元素交换,先++left后元素对应是1,和0元素交换,再i++

2.如果nums[i] == 2,- -right,i下标对应元素交换,先- -right,对应元素是未知的未扫描的,和2交换,i下标对应元素是未知的,不能++还要进行下一次的判断

3.如果nums[i] == 1,直接++i,因为i下标的左边都是1,++后左边还都是1

在这里插入图片描述

代码

class Solution 
{
public:void sortColors(vector<int>& nums) {// 三指针,数组分成三块int left = -1,i = 0,right = nums.size();// i == right结束循环// 0 1 2 left边缘到右边 right边缘到左边while(i < right){if(nums[i] == 0)swap(nums[++left],nums[i++]);else if(nums[i] == 1)i++;elseswap(nums[--right],nums[i]);}}
};

排序数组

排序数组题目链接

题目解析

排成一个升序的数组

在这里插入图片描述

算法原理

随机选数和三路划分
1.三路划分:选出==key,<key,>key的,按照颜色分类那题一样的做法
2.随机选数:选数的范围是在[left,right]中的一个随机值,每一次排序选一个随机数
r = rand() nums[r % (right - left + 1) + left]
再加一个left是因为偏移量,让它能够在[left,right]区间中
[0,n-1-left] -> [left,n-1 ]-> [left,right]

在这里插入图片描述

代码

class Solution 
{
public:int func(vector<int>& nums,int l,int r){int k = rand();// 保证选数在[l,r]之间 return nums[k % (r - l + 1) + l];}void qsort(vector<int>& nums,int l,int r){// 有空数组和1个数的数组的情况if(l >= r)return;// 选数int key = func(nums,l,r);int i = l,left = l-1,right = r + 1;  // 排序while(i < right){if(nums[i] < key) swap(nums[++left],nums[i++]);else if(nums[i] == key) i++;else swap(nums[--right],nums[i]);}// 递归// [l,left] [left + 1,right - 1] [right,r]qsort(nums,l,left);qsort(nums,right,r);}vector<int> sortArray(vector<int>& nums) {srand(time(NULL));// 设置随机数的种子// 数组分成三份  优化随机选数qsort(nums,0,nums.size()-1);return nums;}
};

数组中第K个最大元素

题目解析

在这里插入图片描述

算法原理

1.可以用堆排序找第K大的元素
2.还可以用快排的选择
快排的选择跟上一题的逻辑很像

第K大的元素一定落在第一次数组分成三份的某一个区间内,所以只要去其中一个区间用快排可以解决,要注意的是第三种情况,传k时要传k-b-c,a,b,c都表示区间中元素的个数,k-b-c表示在第一个区间内找第K大的

第一种情况在c中找第K大的
第二种第K大的落在里面就是key了

在这里插入图片描述

代码

class Solution 
{
public:// 把数组分成三份int Selectnums(vector<int>& nums,int left,int right){// 随机选数int r = rand();return nums[r % (right - left + 1) + left];}int qsort(vector<int>& nums,int left,int right,int k){//返回条件// 只有一个元素// 没有空数组的情况因为要找第K大的数,至少要有一个数,有一个数的数组if(left == right)return nums[left];int key = Selectnums(nums,left,right);int i = left,l = left - 1,r = right + 1;while(i < r){if(key == nums[i]) i++;else if(key > nums[i]) swap(nums[++l],nums[i++]);else swap(nums[--r],nums[i]);}// 递归// [left,l] [l+1,r-1] [r,right]// [0,l++]            [r--,n-1]int a = l - left + 1;int b = r - l - 1;int c = right - r + 1;if(c >= k)return qsort(nums,r,right,k);else if((b+c) >= k)return key;elsereturn qsort(nums,left,l,k - b - c);}int findKthLargest(vector<int>& nums, int k) {// 随机选数srand(time(NULL));int n = nums.size();return qsort(nums,0,n-1,k);}
};

LCR 159. 库存管理 III

题目链接

题目解析

以任意顺序返回题目中的K个最小元素

在这里插入图片描述

算法原理

快速选择算法和上一题类似

  1. a个 > k个,在[l,left]区域排序最小的k个元素
  2. a + b个 >= k个,在[l,right]区域中,直接返回key,因为key左边(包括key)一定是排好大小的,所以返回
  3. 前二种情况都不满足,在[right,r]区域中找k-a-b个最小的元素
  4. a == k的情况,肯定排好了,直接返回,因为<=key这变都是有序的
  5. [2,5,7,4] -> 2作为key [2,4,5,7]是排好后的
    [2,4,5,7]这种a > k还要排序,k在key的后面
    [2,5,7,4] -> 5作为key [2,4,5,7]是排好后的
    key 左边都是有序的

在这里插入图片描述

代码

class Solution 
{
public:// 随机选数int GetRound(vector<int>& nums,int left,int right,int k){int r = rand();return nums[r % (right - left + 1) + left];}vector<int> inventoryManagement(vector<int>& stock, int cnt) {srand(time(NULL));qsort(stock,0,stock.size()-1,cnt);return {stock.begin(),stock.begin()+cnt};// int n = stock.size();// sort(stock.begin(),stock.end());// vector<int> ret;// int i = 0;// while(cnt--)// {//     ret.push_back(stock[i++]);// }// return ret;}void qsort(vector<int>& nums,int l,int r,int k){if(l >= r) return;int key = GetRound(nums,l,r,k);int i = l,left = l - 1,right = r + 1;while(i < right){if(key > nums[i]) swap(nums[++left],nums[i++]);else if(key == nums[i]) i++;else swap(nums[--right],nums[i]);}// [l,left] [left + 1,right - 1] [right,r]int a = left - l + 1,b = right - left - 1,c = r - right + 1;if(a > k) qsort(nums,l,left,k);else if(a + b >= k) return;else qsort(nums,right,r,k - a - b);}
};

相关文章:

LeetCode刷题 -- 分治快排

目录 颜色分类题目解析算法原理代码 排序数组题目解析算法原理代码 数组中第K个最大元素题目解析算法原理代码 LCR 159. 库存管理 III题目解析算法原理代码 颜色分类 题目链接 题目解析 数组分为三块 算法原理 1.如果nums[i] 0&#xff0c;left, i下标对应元素交换&#xff0c…...

pyqtgraph绘制实时更新数据的图

PyQtGraph是一个基于PyQt和NumPy的Python库&#xff0c;它专为实时数据可视化而设计。以绘制0~2π范围的ysin(x)为例&#xff0c;基本用法的代码如下&#xff1a; # codingutf-8import pyqtgraph as pg from pyqtgraph.Qt import QtGui, QtCore import numpy as np# pyqtgraph…...

使用 MATLAB 绘制三维散点图:根据坐标和距离映射点的颜色和大小

在数据可视化中&#xff0c;三维散点图是一种非常直观的方式来展示数据的分布。MATLAB 提供了强大的 scatter3 函数&#xff0c;可以用来绘制三维散点图&#xff0c;而通过调整点的颜色和大小&#xff0c;可以进一步增强图形的表现力。 在本篇博客中&#xff0c;我们将逐步讲解…...

ubuntu离线安装docker

首先下载对应的版本amd64 就是x86的 https://download.docker.com/linux/ubuntu/dists/xenial/pool/stable/amd64/需要挑选其他版本 https://download.docker.com/linux/ubuntu/dists/xenial/pool/stable/下载之后上传到服务器目录&#xff0c;分别执行以下文件 sudo dpkg -…...

iOS如何操作更新推送证书

最近收到一份邮件,应该如何操作呢,证书还是跟以前一样冲钥匙串直接申请吗 Hello, As we announced in October, the Certification Authority (CA) for Apple Push Notification service (APNs) is changing. APNs will update the server certificates in sandbox on January…...

# issue 8 TCP内部原理和UDP编程

TCP 通信三大步骤&#xff1a; 1 三次握手建立连接; 2 开始通信&#xff0c;进行数据交换; 3 四次挥手断开连接&#xff1b; 一、TCP内部原理--三次握手 【第一次握手】套接字A∶"你好&#xff0c;套接字B。我这儿有数据要传给你&#xff0c;建立连接吧。" 【第二次…...

【Linux】-学习笔记08

第五章、DNS域名解析服务器 目录 第五章、DNS域名解析服务器 1.简介 1.1DNS简介 1.2因特网的域名结构 1.3域名服务器的类型划分 1.4DNS域名解析的过程 递归查询&#xff08;左侧&#xff09; 迭代查询&#xff08;右侧&#xff09; 2.DNS服务器配置 2.1关于服务端 …...

RFdiffusion Denoise类解读

Denoise 类为蛋白质结构扩散模型的实现提供了核心功能,通过灵活的噪声调度、潜力场引导和子结构对齐,使得模型可以生成物理合理的结构序列,并在每个时间步迭代更新蛋白质的坐标和结构信息。 源代码: def get_next_frames(xt, px0, t, diffuser, so3_type, diffusion_mask,…...

HTML5 拖拽 API 深度解析

一、HTML5 拖拽 API 深度解析 1.1 背景与发展 HTML5 的拖拽 API 是为了解决传统拖拽操作复杂而设计的。传统方法依赖鼠标事件和复杂的逻辑计算&#xff0c;而 HTML5 提供了标准化的拖拽事件和数据传递机制&#xff0c;使得开发者能够快速实现从一个元素拖拽到另一个元素的交互…...

Vue 的生命周期钩子函数是什么?常见的生命周期钩子有哪些?

Vue 的生命周期钩子函数 Vue 的生命周期钩子函数是 Vue 组件在不同生命周期阶段自动调用的函数。生命周期分为创建、挂载、更新和销毁等阶段。理解这些钩子函数对于开发和调试 Vue 应用至关重要&#xff0c;因为它们使我们能够在组件生命周期的不同阶段执行特定的操作。 目录…...

uniapp中导入uview或者uview plus

关于SCSS uview-plus依赖SCSS&#xff0c;您必须要安装此插件&#xff0c;否则无法正常运行。 如果您的项目是由HBuilder X创建的&#xff0c;相信已经安装scss插件&#xff0c;如果没有&#xff0c;请在HX菜单的 工具->插件安装中找到"scss/sass编译"插件进行安…...

3D 生成重建017-StyleGaussian用文本或图像对你的3DGS内容进行风格迁移

3D 生成重建017-StyleGaussian用文本或图像对你的3DGS内容进行风格迁移 文章目录 0 论文工作1 论文方法2 实验结果 0 论文工作 论文 “StyleGaussian: Instant 3D Style Transfer with Gaussian Splatting” 介绍了一种新颖的3D风格迁移方法 StyleGaussian&#xff0c;该方法通…...

【adb】iqoo系统精简垃圾内置应用

免责声明 这个得谨慎点&#xff0c;虽然我验证过两部手机和不同版本的系统&#xff0c;但是总会有特殊的存在、 本教程来自于互联网搜集整理&#xff0c; 按照本教程造成的用户设备硬件或数据损失&#xff0c;本人概不承担任何责任&#xff0c;如您不同意此协议&#xff0c;请不…...

Golang 字符串字面量表示方法

文章目录 1.普通字符串字面量&#xff08;Double-Quoted String Literals&#xff09;2.原始字符串字面量&#xff08;Raw String Literals&#xff09;3.字节字符串字面量&#xff08;Byte Slice Literals&#xff09;4.码值表示字符串字面量Unicode 转义序列UTF8 转义序列十六…...

【uni-app 微信小程序】新版本发布提示用户进行更新

知识准备 uni.getUpdateManager文档介绍 不支持APP与H5&#xff0c;所以在使用的时候要做好平台类型的判断&#xff0c;如何判断&#xff0c;参考条件编译处理多端差异 代码参考 export const updateApp () > {const updateManager uni.getUpdateManager()updateManag…...

Leetcode 739-每日温度

请根据每日 气温 列表 temperatures &#xff0c;请计算在每一天需要等几天才会有更高的温度。如果气温在这之后都不会升高&#xff0c;请在该位置用 0 来代替。 题解&#xff08;单调递减栈&#xff09; 什么时候用单调栈呢&#xff1f; 通常是一维数组&#xff0c;要寻找任…...

Gitee配置以及如何将本地项目提交到远程仓库

文章目录 准备远程仓库配置注册新建仓库 配置git 生成ssh&#xff0c;输入以下命令&#xff0c;然后连敲三次回车键配置公钥本地代码上传 准备 1.本地下载git 2.注册远程仓库账号 远程仓库配置 注册 官网&#xff1a;https://gitee.com 完成注册 新建仓库 头像->设置-…...

爬虫项目基础知识详解

文章目录 Python爬虫项目基础知识一、爬虫与数据分析1.1 Python中的requests库Requests 库的安装Requests 库的 get() 方法爬取网页的通用代码框架HTTP 协议及 Requests 库方法Requests 库主要方法解析 1.2 python中的json库1.3 xpath学习之python中lxml库html了解html结构html…...

【Leetcode Top 100 - 扩展】876. 链表的中间结点

问题背景 给你单链表的头结点 h e a d head head&#xff0c;请你找出并返回链表的中间结点。 如果有两个中间结点&#xff0c;则返回第二个中间结点。 数据约束 链表的结点数范围是 [ 1 , 100 ] [1, 100] [1,100] 1 ≤ N o d e . v a l ≤ 100 1 \le Node.val \le 100 1≤…...

16-01、JVM系列之:内存与垃圾回收篇(一)

JVM系列之&#xff1a;内存与垃圾回收篇&#xff08;一&#xff09; ##本篇内容概述&#xff1a; 1、JVM结构 2、类加载子系统 3、运行时数据区之&#xff1a;PC寄存器、Java栈、本地方法栈一、JVM与JAVA体系结构 JAVA虚拟机与JAVA语言并没有必然的联系&#xff0c;它只是与特…...

经典蓝牙(BT/EDR)蓝牙配对与连接

经典蓝牙的连接过程包括跳频&#xff0c;扫描&#xff0c;配置交换等过程。对ACL链路以及sco的连接过程也做详细的分析。 1. 为什么不配对便无法建立连接&#xff1f; 任何无线通信技术都存在被监听和破解的可能&#xff0c;蓝牙SIG为了保证蓝牙通信的安全性&#xff0c;采用…...

用 Python 从零开始创建神经网络(十四):L1 和 L2 正则化(L1 and L2 Regularization)

L1 和 L2 正则化&#xff08;L1 and L2 Regularization&#xff09; 引言1. Forward Pass2. Backward pass到此为止的全部代码&#xff1a; 引言 正则化方法旨在降低泛化误差。我们首先讨论的正则化形式是L1正则化和L2正则化。L1和L2正则化用于计算一个数值&#xff08;称为惩…...

特殊的数学性质

一个数模9的结果等于它的每一位数相加和模9...

最长递增子序列&什么是继承性?C++中如何实现继承?继承的好处和注意事项有哪些?

最长递增子序列 方法一&#xff1a;暴力二维dp&#xff0c;初始状态&#xff1a;每个元素至少和自己构成一个上升序列&#xff0c;大小为1&#xff0c;状态转移&#xff1a;找到前面结尾数字小于当前数组元素的最长序列&#xff0c;当前位置的长度就是lenpre1. class Solutio…...

汽车IVI中控开发入门及进阶(三十五):架构QML App Architecture Best Practices

在Qt/QML工程的架构中,架构很重要,虽然本身它有分层,比如QML调用资源文件(图片等)显示GUI界面,后面的CPP文件实现界面逻辑,但是这个分类还有点粗。在实际开发中,界面逻辑也就是基于类cpp的实现,也开始使用各种面向对象的设计模式,实现更加优秀的开发架构,这点尤其在…...

面试题整理(二)

芯冰乐知识星球入口:芯冰乐...

编码及其代码

编码 形成文字所需bit点------有相应代号&#xff08;编码---有好多种8/16/24/32&#xff09;都已提前形成好&#xff0c;放哪哪就会形成那个文字 同一个文字在不同编码存的码不一样 用一种编码存的话&#xff0c;如果用另一种编码解析就会出现乱码 Windows默认编码为ANSI …...

python selenium(4+)+chromedriver最新版 定位爬取嵌套shadow-root(open)中内容

废话不多说&#xff0c;直接开始 本文以无界作为本文测试案例&#xff0c;抓取shadow-root&#xff08;open&#xff09;下的内容 shadow Dom in selenium&#xff1a; 首先先讲一下shadow Dom in selenium 版本的区别&#xff0c;链接指向这里 在Selenium 4版本 以及 chrom…...

AutoClass加载预训练实例

AutoClass 由于 Transformer 架构种类繁多&#xff0c;AtuoClass可以创建一个你想要的做模型架构。作为 &#x1f917; Transformer 核心理念的一部分&#xff0c;使库易于使用、简单且灵活&#xff0c;可以AutoClass从给定的检查点自动推断和加载正确的架构。该from_pretrain…...

在 CentOS 上安装 NFS 服务器

文章目录 1. 在 CentOS 上安装 NFS 服务器1.1 安装 NFS 服务器软件包1.2 配置 NFS 共享目录1.3 配置 NFS 导出文件1.4 启动并启用 NFS 服务1.5 导出共享目录1.6 配置防火墙1.7 检查 NFS 状态 2. 在 CentOS 上安装 NFS 客户端2.1 安装 NFS 客户端软件包2.2 挂载 NFS 共享2.3 配置…...

utf8mb4_unicode_ci、utf8mb4_general_ci、utf8mb4_0900_ai_ci; Mysql 排序字符集的优缺点和选择

标题内容 Mysql的排序字符集真让人头疼&#xff0c;如果两个表的排序字符集不一致&#xff0c;还会导致在进行字段比较的时候直接报错。下面分析几个常用的字符集的优劣和选择。 utf8mb4_unicode_ci 特点 Unicode 标准兼容性高&#xff1a;它是基于 Unicode 标准的排序规则&a…...

星宸SSC8836Q/SSC8836Q-H

SSC8836Q产品是高度集成的多媒体片上系统(SoC)产品&#xff0c;适用于汽车和运动/运动相机等高分辨率智能视频录制和播放应用。 该芯片包括64位双核RISC处理器&#xff0c;先进的图像信号处理器(ISP)&#xff0c;高性能的H.265/H。264/MJPEG视频编解码器&#xff0c;智能处理单…...

rk3576 , android14 , 编译, 卡死,android.bp , ninja

问题&#xff1a;我在 编译 &#xff41;&#xff4e;&#xff44;&#xff52;&#xff4f;&#xff49;&#xff44;&#xff11;&#xff14; 的时候&#xff0c; 卡死再 analysing android.bp 这里 &#xff0c;卡了 3&#xff0c;4 个小时。肯定是有问题的。 如图&…...

3、.Net UI库:MaterialSkin - 开源项目研究文章

MaterialSkin 是一个开源的 WinForms 第三方库&#xff0c;提供了许多仿谷歌设计风格的组件&#xff0c;使得 WinForms 窗体程序更加美观。以下是 MaterialSkin 的一些关键特点和使用方法&#xff1a; 主要特点&#xff1a; 仿谷歌设计风格&#xff1a;MaterialSkin 提供了大量…...

2024年构建PHP应用开发环境

文章目录 前言选择合适的PHP版本安装与配置PHP环境Windows平台Linux平台macOS平台 集成Web服务器数据库连接与管理使用Composer进行依赖管理调试工具的选择代码质量管理部署与持续集成安全性考虑参考资料结语 前言 随着互联网的发展&#xff0c;PHP作为一门成熟的服务器端编程…...

苹果手机iPad投屏到安卓电视,不只有AirPlay一种方法,还可以无线远程投屏!

苹果品牌的设备一般都可以使用airplay功能&#xff0c;将一个屏幕投射到另一个屏幕上。如果是跨品牌或跨系统投屏&#xff0c;airplay就未必能够适应。 提供无线投屏和airplay投屏两种方式的AirDroid Cast已经推出TV版本。苹果手机或iPad可以选择无线&#xff08;远程&#xff…...

什么是内网什么是外网?区别是什么

内网和外网是计算机网络中的两个基本概念&#xff0c;它们在定义、特点和使用场景上有显著的区别。‌虎观代理小二将带大家详细了解内网与外网的定义以及它们之间的主要差异&#xff0c;帮助读者更好地理解和应用这两种网络。 内网&#xff08;局域网&#xff0c;LAN&#xff0…...

基于Springboot+Vue的在线答题闯关系统

基于SpringbootVue的在线答题闯关系统 前言&#xff1a;随着在线教育的快速发展&#xff0c;传统的教育模式逐渐向互联网教育模式转型。在线答题系统作为其中的一个重要组成部分&#xff0c;能够帮助用户通过互动式的学习方式提升知识掌握度。本文基于Spring Boot和Vue.js框架&…...

html css 图片背景透明

html css图标背景透明 css属性&#xff1a; background-color:transparent; mix-blend-mode: multiply; 完整HTML代码&#xff1a; <html><head><title>Test</title></head><body><div id"test" style"background-col…...

Servlet

一 Servlet Servlet (server applet) 是运行在服务端(tomcat)的Java小程序&#xff0c;是sun公司提供一套定义动态资源规范; 从代码层面上来讲Servlet就是一个接口 用来接收、处理客户端请求、响应给浏览器的动态资源。在整个Web应用中&#xff0c;Servlet主要负责接收处理请求…...

MySQL用法---MySQL Workbench创建数据库和表

1. 连接数据库 打开软件&#xff0c;点击左下角卡片&#xff0c;输入设置的数据库密码&#xff0c;勾选单选框 2. 了解主页面的组成部分 3. 创建数据库 先点击工具栏的创建按钮 再输入数据库名称 点击 Apply 创建 4. 创建数据表 展开数据库&#xff0c;在Tables上右键&…...

WordPress Elementor Page Builde 任意文件读取漏洞复现(CVE-2024-9935)

0x01 产品描述: WordPress Elementor Page Builder 是一款 WordPress 插件,它允许用户以可视化方式创建和编辑网页。0x02 漏洞描述: WordPress 的 Elementor Page Builder 插件的 PDF 生成器插件在 1.7.5 之前的所有版本中都容易受到路径遍历的攻击,包括 1.7.5 rtw_pgaepb_…...

静态链接和动态链接的特点

静态链接 链接方式‌&#xff1a;在编译时&#xff0c;所有依赖的库代码被直接打包到生成的可执行文件中。这意味着在程序运行时&#xff0c;不需要再加载任何外部库文件‌。 优点‌&#xff1a; 独立性强‌&#xff1a;生成的可执行文件可以在没有依赖库的系统上直接运行&am…...

内核流对象(Kernel Streaming Objects)

内核流对象(Kernel Streaming Objects)是 Windows 系统中用于处理音频、视频等流媒体数据的重要机制。让我详细解释其作用和主要组件&#xff1a; 1. 主要作用&#xff1a; c // 内核流的核心功能 - 音频/视频数据的实时处理 - 多媒体设备驱动开发 - 硬件与软件之间的数据流传…...

Java 在Json对象字符串中查找和提取特定的数据

1、在处理JSON数据时&#xff0c;需要提出个别字段的值&#xff0c;通过正则表达式提取特定的数据 public static void main(String[] args) {//定义多个JSON对象字符串类型&#xff0c;假设每个对象有a,b,c 字段String strJson "{\"a\":1.23,\"b\"…...

21、结构体成员分布

结构体中的成员并不是紧挨着分布的&#xff0c;内存分布遵循字节对齐的原则。 按照成员定义的顺序&#xff0c;遵循字节对齐的原则存储。 字节对齐的原则&#xff1a; 找成员中占据字节数最大的成员&#xff0c;以它为单位进行空间空配 --- 遇到数组看元素的类型 每一个成员距离…...

【深度学习】四大图像分类网络之ResNet

ResNet网络是在2015年由微软实验室中的何凯明等几位提出&#xff0c;在CVPR 2016发表影响深远的网络模型&#xff0c;由何凯明团队提出来&#xff0c;在ImageNet的分类比赛上将网络深度直接提高到了152层&#xff0c;前一年夺冠的VGG只有19层。斩获当年ImageNet竞赛中分类任务第…...

zookeeper学习

解决什么问题&#xff1f; 首先来分析下业务对象&#xff0c;才能对解决的问题进行归纳和总结。它解决的事分布式应用的问题&#xff0c;那么分布式应用会存在哪里问题是由它的业务特性来决定的&#xff0c;这些问题已是为了解决业务的问题。分布式的业务特征有哪些&#xff1…...

Monkey结合appium模拟操作特定界面

目录 1. 使用 Monkey 操作特定界面&#xff08;通过UI标识来限制&#xff09; 2. 结合 uiautomator 或 appium 定位特定元素 步骤&#xff1a; 3. 使用 Monkey Appium 控制特定界面点击 4. 如何结合 Appium 与 Monkey 5. 限制 Monkey 只点击固定界面上的元素 使用 --pc…...

智能指针【C++11】

文章目录 智能指针std::auto_ptr std::unique_ptrstd::shared_ptrstd::shared_ptr的线程安全问题std::weak_ptr 智能指针 std::auto_ptr 管理权转移 auto_ptr是C98中引入的智能指针&#xff0c;auto_ptr通过管理权转移的方式解决智能指针的拷贝问题&#xff0c;保证一个资源…...