二分查找算法
目录
1.二分查找
2.在排序数组中查找元素的第一个和最后一个位置
2.1题目解析
2.2算法原理
2.3编写代码
3.x的平方根
3.1题目解析
3.2算法原理
3.3编写代码
4.搜索插入位置
4.1题目解析
4.2算法原理
4.3编写代码
5.山脉数组的峰顶索引
5.1题目解析
5.2算法原理
5.3编写代码
6.寻找峰值
6.1题目解析
6.2算法原理
6.3编写代码
7.寻找旋转排序数组中的最小值
7.1题目解析
7.2算法原理
7.3编写代码
8.0~n-1中的缺失数字
8.1题目解析
8.2算法原理
8.3编写代码
9.正整数和负整数的最大计数
9.1题目解析
9.2算法原理
9.3编写代码
1.二分查找
2.在排序数组中查找元素的第一个和最后一个位置
2.1题目解析
2.2算法原理
查找区间的左端点
将给定的数组分为两部分,小于t 和 大于等于t
此时我们需要讨论mid的落点,分为以下两种情况:
①mid落在小于t这段区间:此时arr[mid] < target,说明mid之前的元素均可舍去,即[left,mid]都可以舍去(包括mid),此时我们需要更新left到mid+1的位置,继续在[mid+1,right]上继续寻找左边界
②mid落在大于等于t这段区间:此时arr[mid] >= target,说明mid之后的元素均可舍去,即[mid+1,right]都可以舍去(不包括mid,因为该区间为大于等于,mid可能是最终结果),此时更新right到mid的位置,继续在[left,mid]上寻找左边界
处理细节问题:
①循环条件的确定
②求中点的操作- 查找区间的右端点:
将给定的数组分为两部分,小于等于t 和 大于t
此时我们需要讨论mid的落点,分为以下两种情况:
①mid落在小于等于t这段区间:此时arr[mid] <= target,说明mid之前的元素均可舍去,即[left,mid-1]都可以舍去(不包括mid,因为该区间为小于等于,mid可能是最终结果),此时更新left到mid的位置,继续在[mid,right]上寻找右边界
②mid落在大于t这段区间:此时arr[mid] > target,说明mid之后的元素均可舍去,即[mid,right]都可以舍去(包括mid),此时我们需要更新right到mid-1的位置,继续在[left,mid-1]上继续寻找左边界处理细节问题:
①循环条件的确定
同上
②求中点的操作
(数组的元素个数为偶数时,求mid才会有差别,元素个数为奇数时mid位置无差别)
求中点操作时的选取技巧:
在求 mid 的时候,只有 right-1 的情况下,才会向上取整(也就是+1取中间数)
2.3编写代码
class Solution {public int[] searchRange(int[] nums, int target) {//二分查找int[] ret = new int[2];ret[0] = ret[1] = -1;if(nums.length == 0) return ret;int left = 0,right = nums.length - 1;//1.查找区间的左端点while(left < right) {//求中点midint mid = left + (right - left)/2;if(nums[mid] < target) {left = mid + 1;}else {right = mid;}}if(nums[left] != target) return ret;else ret[0] = right;//2.查找区间的右端点left = 0;right = nums.length - 1;while(left < right) {//求中点midint mid = left + (right - left + 1)/2;if(nums[mid] <= target) {left = mid;}else {right = mid - 1;}}ret[1] = left;return ret;}
}
3.x的平方根
3.1题目解析
x的平方根https://leetcode.cn/problems/sqrtx/description/
3.2算法原理
- 暴力枚举:x的算术平方根一定在0-x之间,所以我们只需要写个循环挨个计算平方即可,当i*i等于x时直接返回i,当第一次出现i*i > x时返回i-1
- 二分查找:
当x < 0时直接返回0
二段性:mid的平方可以分为两种情况,小于等于x和大于x
ret永远在左边区域
①mid*mid <= x时:left = mid
②mid*mid > x时,right = mid-1
注:因为题目所给数据量范围较大,可能会超出int的范围,所以我们将left和mid设为long类型来防止溢出
3.3编写代码
//暴力写法
class Solution {public int mySqrt(int x) {int i = 0;for(i = 0;i <= x;i++) {if((i * i) == x) return i;if((i * i) > x) return i-1;}return -1;}
}
class Solution {public int mySqrt(int x) {//二分查找if(x < 1) return 0;long left = 1,right = x;while(left < right) {long mid = left +(right-left+1)/2;if(mid * mid <= x) left = mid;else right = mid - 1;}return (int)left;}
}
4.搜索插入位置
4.1题目解析
搜索插入位置https://leetcode.cn/problems/search-insert-position/solutions/2023391/er-fen-cha-zhao-zong-shi-xie-bu-dui-yi-g-nq23/
4.2算法原理
插入位置为第一次出现比target大的数字或数组的末尾,所以最终所要找的位置的值是大于等于t的,因此选取二分查找的右端点
- 暴力枚举(时间复杂度为O(n)):nums[i] > target时返回i下标,循环结束表明插入元素位置在数组末尾,返回数组长度即可
- 二分查找:
二段性:数组元素 >= target 数组元素 < target
4.3编写代码
class Solution {public int searchInsert(int[] nums, int target) {for(int i = 0; i < nums.length;i++) {if(nums[i] >= target) return i;}return nums.length;}
}
class Solution {public int searchInsert(int[] nums, int target) {//二分查找左端点int left = 0,right = nums.length - 1;while(left < right) {int mid = left + (right - left) / 2;if(nums[mid] < target) left = mid + 1;else right = mid;}if(nums[left] < target) return left + 1;return left;}
}
5.山脉数组的峰顶索引
5.1题目解析
山脉数组的封顶索引https://leetcode.cn/problems/peak-index-in-a-mountain-array/description/
5.2算法原理
- 暴力枚举( 时间复杂度为O(n) ):循环遍历每一个元素,同时满足当前元素比前一个元素和后一个元素大,返回当前元素下标即可
- 二分查找:
二段性:当前元素大于前一个元素arr[mid] > arr[mid - 1](ret在左区间)
当前元素小于前一个元素arr[mid] < arr[mid - 1]
5.3编写代码
class Solution {public int peakIndexInMountainArray(int[] arr) {for(int i = 1;i < arr.length;i++) {if(arr[i] > arr[i - 1] && arr[i+1] < arr[i]) return i;}return -1;}
}
class Solution {public int peakIndexInMountainArray(int[] arr) {//二分查找右端点 小于等于 和 大于int left = 1,right = arr.length - 2;//第一个位置和最后一个位置肯定不是结果while(left < right) {int mid = left + (right - left + 1) / 2;if(arr[mid] > arr[mid - 1]) left = mid;else right = mid - 1;}return left;}
}
class Solution {public int peakIndexInMountainArray(int[] arr) {int left = 1,right = arr.length - 2;//第一个位置和最后一个位置肯定不是结果while(left < right) {int mid = left + (right - left) / 2;if(arr[mid] < arr[mid + 1]) left = mid + 1;else right = mid;}return left;}
}
6.寻找峰值
6.1题目解析
寻找峰值https://leetcode.cn/problems/find-peak-element/
6.2算法原理
- 暴力解法:考虑四种情况
①当数组只有一个元素时,返回0
②数组元素大小一路下降时,返回0
③同时满足当前元素大于前一个元素,并且大于后一个元素,返回当前元素下标
④循环完毕后没找到满足③条件的元素,说明数组元素大小是一路上升的,返回最后一个元素即可- 二分查找:
任取一个点i,与下一个点 i+1,会有如下两种情况,二段性:
arr[i]> arr[i + 1]:此时「左侧区域」一定会存在山峰(因为最左侧是负无穷),那么我们可以去左侧去寻找结果;
arr[i]< arr[i + 1]:此时「右侧区域」一定会存在山峰(因为最右侧是负无穷),那么我们可以去右侧去寻找结果。
6.3编写代码
class Solution {public int findPeakElement(int[] nums) {//数组只有一个元素if(nums.length == 1) return 0;//数组一路下降if(nums[0] > nums[1]) return 0;for(int i = 1;i < nums.length - 1;i++) {if(nums[i] > nums[i - 1] && nums[i] > nums[i + 1]) return i;}//数组一路上升return nums.length - 1;}
}
class Solution {public int findPeakElement(int[] nums) {int left = 0,right = nums.length - 1;while(left < right) {int mid = left + (right - left) / 2;if(nums[mid] < nums[mid + 1]) left = mid + 1;else right = mid;}return left;}
}
7.寻找旋转排序数组中的最小值
7.1题目解析
寻找旋转排序数组中的最小值https://leetcode.cn/problems/find-minimum-in-rotated-sorted-array/description/
7.2算法原理
- 暴力解法:遍历数组寻找最小值即可
- 二分查找:
7.3编写代码
class Solution {public int findMin(int[] nums) {// 初始时将最小元素设为数组的第一个元素int ret = nums[0]; for(int i = 1; i < nums.length; i++) {if(nums[i] < ret) {// 如果找到更小的元素,更新 ret 的值ret = nums[i]; }}return ret;}
}
class Solution {public int findMin(int[] nums) {//以最后一个元素为参照物,分为两个区间 全大于 和 小于等于该元素int i = nums.length - 1;//参照物int left = 0,right = nums.length - 1;while(left < right) {int mid = left + (right - left) / 2;if(nums[mid] > nums[i]) left = mid + 1;else right = mid;}return nums[left];}
}
8.0~n-1中的缺失数字
8.1题目解析
0~n-1的缺失数字https://leetcode.cn/problems/que-shi-de-shu-zi-lcof/description/
8.2算法原理
- 暴力解法:
- 二分查找:
8.3编写代码
class Solution {public int takeAttendance(int[] records) {int a = 0;for(int i = 0;i < records.length;i++) {if(a == records[i]) a++;else break;}return a;}
}
class Solution {public int takeAttendance(int[] records) {//利用数组下标和元素相等这一特征来计算//二段性:缺失位置的左边下标和元素相等 右边不相等int left = 0,right = records.length - 1;while(left < right) {int mid = left + (right - left) / 2;if(records[mid] == mid) left = mid + 1;else right = mid;}return left == records[left] ? left + 1 : left;}
}
9.正整数和负整数的最大计数
9.1题目解析
正整数和负整数的最大计数https://leetcode.cn/problems/maximum-count-of-positive-integer-and-negative-integer/
9.2算法原理
特殊情况:若元素全为0,pos2返回的是3,nums.length - pos2,此时正数个数为0,所以right初值为nums.length
9.3编写代码
class Solution {public int maximumCount(int[] nums) {//二分查找 二段性:大于0 和 小于0//负数个数为第一个 >=0 的元素的下标//正数个数为 数组长度 - 第一个 >=1 的元素下标int pos1 = lowerBound(nums, 0);int pos2 = lowerBound(nums, 1);return Math.max(pos1, nums.length - pos2);}public int lowerBound(int[] nums,int target) {int left = 0,right = nums.length;//若元素全为0,pos2返回的是3,nums.length - pos2,此时正数个数为0while(left < right) {int mid = left + (right - left) / 2;if(nums[mid] <target) left = mid + 1;else right = mid;}return left;}
}
相关文章:
二分查找算法
目录 1.二分查找 2.在排序数组中查找元素的第一个和最后一个位置 2.1题目解析 2.2算法原理 2.3编写代码 3.x的平方根 3.1题目解析 3.2算法原理 3.3编写代码 4.搜索插入位置 4.1题目解析 4.2算法原理 4.3编写代码 5.山脉数组的峰顶索引 5.1题目解析 5.2算法原理 …...
【Python技术】同花顺wencai涨停分析基础上增加连板分析
周末,有读者加我, 说 之前的涨停分析 是否可以增加连板分析。 这个可以加上。 先看效果 这里附上完整代码: import streamlit as st import pywencai import pandas as pd from datetime import datetime, timedelta import plotly.graph_o…...
多线程的知识总结(8):用 thread 类 或全局 async (...) 函数,创建新线程时,谁才是在新线程里第一个被执行的函数
(40)用 thread 类 或全局 async (…) 函数,创建新线程时,谁才是在新线程里第一个被执行的函数? 弄清楚这个问题,有利于推测和理解线程中代码的执行流程。根据 thread 类 和 async (…࿰…...
mp4影像和m4a音频无损合成视频方法
第一步:复制高清视频地址 url 第二步:打开网址粘贴复制的视频url视频下载 第三步:下载-影像.mp4和-音频.m4a 第四步:合并视频; 使用ffmpeg进行无损合成(如果没有安装ffmpeg请自行下载安装下载 FFmpeg (p2hp.com)&…...
CEF 数据加密与网络安全
随着网络攻击的日益猖獗,确保应用的安全性已经成为开发者的首要任务。特别是在现代Web应用中,如何确保数据的加密存储、网络通信的安全性以及有效的认证机制成为至关重要的问题。对于基于 Chromium Embedded Framework (CEF) 的应用,开发者必…...
【Linux学习】十五、Linux/CentOS 7 用户和组管理
Linux下组和用户的管理都必须是root用户下进行: 一、组的管理 1.组的创建 格式: groupadd 组名参数: -g:指定用户组的组ID(GID),如果不提供则由系统自动分配。 【案例】创建一个名为 oldg…...
C语言实现图片文件的复制
在C语言中,直接处理图片文件(如JPEG、PNG等)的复制,通常涉及到文件I/O操作。这些图片文件是二进制文件,因此需要使用二进制模式读取和写入文件。 图片文件复制代码: #include <stdio.h> #include&l…...
噪杂环境(房车改装市场)离线语音通断器模块
一直在坚持,却很难有机会上热门,在现在这个以流量为导向的时代,貌似很难靠所谓的坚守和热爱把产品成功的推向市场了。目前的客户仍然是以老客户为主,应用场景主要是房车改装,根据九客户的需求定制化一些模块。因为没有…...
网络安全知识点
第一章 网络安全概述 1.2.1 网络安全概念P4 网络安全是指网络系统的硬件、软件及其系统中的数据受到保护,不因偶然的或恶意的原因而遭到破坏、更改、泄露,系统连续可靠正常地运行,网络服务不中断。 1.2.3 网络安全的种类P5 (1…...
QT<32>软件子页面最小化后再次点击置顶显示
一、前言 在 Qt 中,当一个窗口被最小化后,再次点击恢复它时,默认情况下,窗口恢复的方式可能并不总是显示在最顶层。这通常是因为窗口恢复后会被置于操作系统的默认层次结构中,而不是直接处于最上层。为了确保恢复后的窗…...
TCP 数据传输的拆包和粘包了解吗?
前言: 上一篇我们了解了什么是 TCP 协议,以及 TCP 协议 3 次握手 4次挥手的原因,本篇来分享一下 TCP 数据的传输过程的拆包和粘包,以及 TCP 数据传输过程中的一些细节。 计算机网络往期文章 TCP 为什么是 3 次握手 4 次挥手&am…...
Ubuntu常用自救方案
一、开机进入终端界面 莫名其妙进入终端界面了且死活出不来,原因可能是下载了些不该下的,或者卸载了些不能卸的。 万一真是这样可以尝试以下方法: 1.安装图形界面 第一行必安,2、3没试过 sudo apt-get install ubuntu-desktop …...
决策曲线分析(DCA)中平均净阈值用于评价模型算法(R自定义函数)
决策曲线分析(DCA)中平均净阈值用于评价模型算法 DCA分析虽然不强调用来评价模型算法或者变量组合的优劣,但是实际应用过程中感觉DCA曲线的走势和模型的效能具有良好的一致性,其实这种一致性也可以找到内在的联系,比如…...
【小沐学GIS】基于C++绘制三维数字地球Earth(OpenGL、glfw、glut、QT)第三期
🍺三维数字地球系列相关文章如下🍺:1【小沐学GIS】基于C绘制三维数字地球Earth(456:OpenGL、glfw、glut)第一期2【小沐学GIS】基于C绘制三维数字地球Earth(456:OpenGL、glfw、glut)第二期3【小沐…...
回归预测 | MATLAB实现CNN-BiGRU-Attention卷积神经网络结合双向门控循环单元融合注意力机制多输入单输出回归预测
回归预测 | MATLAB实现CNN-BiGRU-Attention卷积神经网络结合双向门控循环单元融合注意力机制多输入单输出回归预测 目录 回归预测 | MATLAB实现CNN-BiGRU-Attention卷积神经网络结合双向门控循环单元融合注意力机制多输入单输出回归预测预测效果基本介绍程序设计参考资料 预测效…...
深度解析相对路径、绝对路径与URL映射策略、MVC架构
一、相对路径与绝对路径的概念与应用 路径管理是Web开发中的核心概念之一。理解不同类型的路径如何影响文件和资源的访问对于确保代码的灵活性、可维护性和可移植性至关重要。 1. 相对路径 相对路径是指相对于当前文件或目录的位置来指定目标资源的路径。它不依赖于绝对的服…...
clipboard----封装复制组件
Clipboard.js 是一个轻量级的 JavaScript 库,旨在帮助开发者轻松地实现将文本复制到剪贴板的功能。它不依赖 Flash 或其他外部库,并且提供了一种简单的方式来响应用户的复制行为。Clipboard.js 支持绑定到任何元素(如按钮、图片等)…...
vue 中数据改变后,组件不更新
vue 中数据改变后,组件不更新 1.1. 确认响应式 1.2. 使用计算属性或侦听器 1.3. 检查异步更新队列 1.4. 手动触发更新 1.5. 检查数据绑定 1.6. 避免直接修改数组 1.7. 使用 Vue.set 或 this.$set 1.8. 检查作用域问题 1.9. 使用 Vue DevTools vue 中数据改变后&…...
使用C#和OPenCV实现圆形检测
文章目录 霍夫变换使用 OpenCV 和 C# 实现圆形检测 霍夫变换 在计算机视觉中,圆形检测是一个常见且有用的任务,特别是在物体识别、图像分析和图形处理等领域。OpenCV 是一个强大的开源计算机视觉库,它提供了许多工具来实现不同的图像处理功能…...
C++ 给定字符串,然后给出开始要取的位置,返回取到的信息
3 happy new year 7 year 1 new 4 new year year error input #include <stdio.h> #include <string.h> void strmcpy(char* s, char* t, int m); int main() {int repeat, m;char t[1000], s[1000];scanf("%d", &repeat);getchar(); //吸收换行符in…...
异步持久化策略对比
1.背景 游戏服务器其中一项重点工作,就是对游戏玩家的数据进行持久化,保证下次登录可以再续前缘。如果游戏服务器架构里没有缓存,每次操作都需要读写数据库,无疑对数据库带来非常大的压力。一旦使用缓存,就伴随异常持…...
手机租赁系统开发全流程解析与实用指南
内容概要 在如今快速发展的科技时代,手机租赁系统已经成为一种新兴的商业模式,非常符合当下市场需求。那么,在开发这样一个系统的时候,首先要从需求分析和市场调研开始。在这一阶段,你需要了解用户需要什么࿰…...
apache-dubbo
dubbo 文档地址 dubbo 官方文档地址 https://dubbo.apache.org/zh-cn/docs/user/references/api.html nacos 官方文档地址 https://nacos.io/zh-cn/docs/quick-start.html nacos下载地址 https://github.com/alibaba/nacos/releases/download/2.3.0/nacos-server-2.3.0.…...
【JavaEE】网络(1)
🐵本篇文章开始讲解计算机网络相关的知识 一、基础概念 1.1 局域网和广域网 局域网→Local Area Network→简称LAN,局域网是局部组建的一种私有网络,局域网内的主机之间可以进行网络通信,局域网和局域网之间在没有连接的情况不能…...
系统思考—决策
今年在为不同公司交付培训与项目时,常常听到“降本增效”的提法,但关键是:“降”的到底是什么成本?裁员无疑是最快的成本削减方式,但也可能带来人心惶惶。人力是资本,不是成本。除非企业到了生死存亡的关头…...
nVisual 前端集成SDK使用说明
目前客户需要搭建自己的可视化产品,但需要使用nVisual的可视化视图功能,根据目前项目实施需求,决定做了一款简单版的SDK视图插件,这个小插件的主要功能是嵌入到客户项目里给客户提供 ‘详细视图’‘拓扑视图’或者是‘主视图’的展示功能.目前已经开发完毕,这里做一下简单介绍.…...
上传文件时获取音视频文件时长和文本文件字数
获取音视频文件时长和文本文件字数 一、获取音视频文件时长二、计算文本文件字数 最近有个需求,要求上传文件时获取音视频文件时长和文本文件字数🐶。 发现这样的冷门资料不多,特做个记录。本文忽略文件上传功能,只封装核心的工具…...
[COLM 2024] V-STaR: Training Verifiers for Self-Taught Reasoners
本文是对 STaR 的改进方法,COLM 是 Conference On Language Models,大模型领域新出的会议,在国际上很知名,不过目前还没有被列入 ccf list(新会议一般不会列入);作者来自高校、微软研究院和 Goo…...
【C++】string的主要功能模拟复现
经常调用的短小函数直接定义在头文件中,可以节省时间开销 #include<iostream> #include<assert.h> using namespace std; namespace mumu {class string{friend ostream& operator<<(ostream& _cout, const mumu::string& s);friend…...
Linux环境安装Jenkins
Linux环境安装Jenkins Jenkins和JDK的版本 Jenkins和JDK的版本需要对应,不然无法正常启动。 Jenkins稳定版下载地址 Jenkins服务 手动使用命令启动和关闭Jenkins比较麻烦,所以可以把Jenkins设置成开机启动。 创建Jenkins.sh文件 JAVA_HOME和jenk…...
Elasticsearch:ES|QL 中的全文搜索 - 8.17
细心的开发者如果已经阅读我前两天发布的文章 “Elastic 8.17:Elasticsearch logsdb 索引模式、Elastic Rerank 等”,你就会发现在 8.17 的发布版中,有一个重要的功能发布。那就是 ES|QL 开始支持全文搜索了。在今天的文章中我们来尝试一下。…...
Leetcode 3387. Maximize Amount After Two Days of Conversions
Leetcode 3387. Maximize Amount After Two Days of Conversions 1. 解题思路2. 代码实现 题目链接:3387. Maximize Amount After Two Days of Conversions 1. 解题思路 这一题思路上其实就是要分别求出day 1以及day 2中原始货币与其他各个货币之间的成交价&…...
Lumos学习王佩丰Excel第二十一讲:经典Excel动态图表实现原理
一、动态图表实现原理 1、理解图表中的数据系列 在Excel图表中,系列指的是图表中的数据集合,它通常代表着一个数据源。每个系列都可以包含多个数据点,这些数据点在图表中以特定的形式展现,如柱状图中的柱子,折线图中…...
静态路由、RIP、OSPF、BGP的区别
静态路由:是管理员手动将路由写入到路由器中,配置简单开销小,但不能适应网络变化,只用于小型的网络 RIP,路由信息协议,属于距离矢量路由协议的一种,根据跳数来判断最优路由,如果跳数…...
解决 Flutter 在 Mac 上的编译错误
解决 Flutter 在 Mac 上的编译错误 在使用 Flutter 进行项目开发并尝试在 Mac 设备上进行编译时,遇到了一系列的错误信息,这些错误信息给项目的构建与部署带来了阻碍。 一、错误详情 在编译过程中,Xcode 输出了大量的信息,其中…...
ECharts实现数据可视化入门详解
文章目录 ECharts实现数据可视化入门详解一、引言二、基础配置1.1、代码示例 三、动态数据与交互2.1、代码示例 四、高级用法1、多图表组合1.1、在同一容器中绘制多个图表1.2、创建多个容器并分别初始化 ECharts 实例1.3、实现多图联动 五、总结 ECharts实现数据可视化入门详解…...
LRM-典型 Transformer 在视觉领域的应用,单个图像生成3D图像
https://yiconghong.me/LRM. 一、Abstract 第一个大型重建模型(LRM),它可以在5秒内从单个输入图像预测物体的3D模型。LRM采用了高度可扩展的基于transformer的架构,具有5亿个可学习参数,可以直接从输入图像中预测神经…...
Stream– ESP8266物联网应用,(客户端向服务器发送数据信息 客户端向服务器请求数据信息)
Stream– ESP8266物联网应用 Stream对于ESP8266-Arduino语言来说指的是数据序列。请留意:在C编程中Stream常被翻译作“流”。我们认为将Stream称为数据序列更加直观。因为数据序列这一概念有两个很关键特点。 第一个特点是“序”,即数据序列不能是杂乱…...
win10系统右下角没有显示网络图标 , 打开或关闭系统图标网络灰色
win10系统右下角没有显示网络图标 / 打开或关闭系统图标网络灰色 win10系统右下角没有显示网络图标, 并且打开或关闭系统图标网络灰色 解决方案: 首先,按【Ctrl Alt Del】组合键,然后点击【任务管理器】。任务管理器窗口,找到并选择【Wind…...
Python使用Selenium库获取 网页节点元素、名称、内容的方法
我们要用到一些网页源码信息,例如获取一些节点的class内容, 除了使用Beautifulsoup来解析,还可以直接用Selenium库打印节点(元素)名称,用来获取元素的文本内容或者标签名。 例如获取下面的class的内容&am…...
onnx文件转pytorch pt模型文件
onnx文件转pytorch pt模型文件 1.onnx2torch转换及测试2.存在问题参考文献 从pytorch格式转onnx格式,官方有成熟的API;那么假如只有onnx格式的模型文件,该怎样转回pytorch格式? https://github.com/ENOT-AutoDL/onnx2torch提供了…...
计算机网络中的SIP协议是什么?
SIP(Session Initiation Protocol,会话初始化协议)是由IETF(Internet Engineering Task Force,因特网工程任务组)制定的多媒体通信协议。以下是对SIP的详细简述: 一、SIP的基本概念 SIP是一个…...
Apache Kylin最简单的解析、了解
官网:Overview | Apache Kylin 一、Apache Kylin是什么? 由中国团队研发具有浓厚的中国韵味,使用神兽麒麟(kylin)为名 的一个OLAP多维数据分析引擎:(据官方给出的数据) 亚秒级响应ÿ…...
axfbinhexelf文件区别
0 Preface/Foreword axf,bin,hex,elf四个都能存在于嵌入式软件领域。 1 文件介绍 嵌入式软件中常见的文件包含: axf,包含调试信息,文件最大。调试信息放在机器码前面。elfhex,包含地址信息,文件内容较大。bin&#x…...
MySQL表自增id溢出的故障复盘,你是如何解决与监控的
文章精选推荐 1 JetBrains Ai assistant 编程工具让你的工作效率翻倍 2 Extra Icons:JetBrains IDE的图标增强神器 3 IDEA插件推荐-SequenceDiagram,自动生成时序图 4 BashSupport Pro 这个ides插件主要是用来干嘛的 ? 5 IDEA必装的插件&…...
03、SpirngMVC核心(下)
一、关于RESTful编程风格 什么是RESTful RESTful的英文全称是:Representational State Transfer(表述性状态转移) RESTful是Web服务接口的一种设计风格。它定了一组约束和规范,可以让Web服务接口更加简洁、易于理解、易于扩展、安全可靠。 RESTful对于请求的约束如下:…...
【游戏设计原理】10 - 科斯特的游戏理论
科斯特的游戏理论强调了游戏与学习之间的关系,认为“玩得开心”与“学习”是紧密相连的。换句话说,游戏的核心魅力在于通过适当的挑战和不断的学习进程激发玩家的内啡肽循环,这让玩家在不断的探索和进步中找到乐趣。 科斯特的理论通过游戏是…...
【JAVA】Java项目实战—Java EE项目:客户关系管理(CRM)系统
Java EE项目:客户关系管理(CRM)系统 一、背景介绍 1.1 Java语言的重要性 Java是一种广泛使用的编程语言,因其跨平台性、面向对象特性以及丰富的生态系统而受到开发者的青睐。Java EE(Enterprise Edition)…...
JAVA 零拷贝技术和主流中间件零拷贝技术应用
目录 介绍Java代码里面有哪些零拷贝技术java 中文件读写方式主要分为什么是FileChannelmmap实现sendfile实现 文件IO实战需求代码编写实战IOTest.java 文件上传阿里云,测试运行代码看耗时为啥带buffer的IO比普通IO性能高?BufferedInputStream为啥性能高点…...
STM32软件IIC驱动TCA9548A多路测量AHT10
STM32软件IIC驱动TCA9548多路测量AHT10 TCA9548AAHT10代码逻辑代码展示现象总结 TCA9548A TCA9548A 有八个可通过 I2C 总线控制的双向转换开关,SCL/SDA 上行对扩展到八个下行对,或者通道,适用于系统中存在I2C目标地址冲突的情况。8路双向转换…...