wordpress提示不安全浙江杭州seo网站建设网站优化

news/2025/9/23 22:57:01/文章来源:
wordpress提示不安全,浙江杭州seo网站建设网站优化,仿门户网站源码,网站网页优化技巧优质博文IT-BLOG-CN 一、题目 已知一个长度为n的数组#xff0c;预先按照升序排列#xff0c;经由1到n次 旋转 后#xff0c;得到输入数组。例如#xff0c;原数组nums [0,1,2,4,5,6,7]在变化后可能得到#xff1a; 【1】若旋转4次#xff0c;则可以得到[4,5,6,7,0,1,2… 优质博文IT-BLOG-CN 一、题目 已知一个长度为n的数组预先按照升序排列经由1到n次 旋转 后得到输入数组。例如原数组nums [0,1,2,4,5,6,7]在变化后可能得到 【1】若旋转4次则可以得到[4,5,6,7,0,1,2] 【2】若旋转7次则可以得到[0,1,2,4,5,6,7] 注意数组[a[0], a[1], a[2], ..., a[n-1]]旋转一次 的结果为数组[a[n-1], a[0], a[1], a[2], ..., a[n-2]]。 给你一个元素值 互不相同 的数组nums它原来是一个升序排列的数组并按上述情形进行了多次旋转。请你找出并返回数组中的 最小元素 。 你必须设计一个时间复杂度为O(log n)的算法解决此问题。 示例 1 输入nums [3,4,5,1,2] 输出1 解释原数组为[1,2,3,4,5]旋转3次得到输入数组。 示例 2 输入nums [4,5,6,7,0,1,2] 输出0 解释原数组为[0,1,2,4,5,6,7]旋转3次得到输入数组。 示例 3 输入nums [11,13,15,17] 输出11 解释原数组为[11,13,15,17]旋转4次得到输入数组。 n nums.length 1 n 5000 -5000 nums[i] 5000 nums中的所有整数 互不相同 nums原来是一个升序排序的数组并进行了1至n次旋转 二、代码 二分查找 我们考虑数组中的最后一个元素xxx在最小值右侧的元素不包括最后一个元素本身它们的值一定都严格小于xxx而在最小值左侧的元素它们的值一定都严格大于xxx。因此我们可以根据这一条性质通过二分查找的方法找出最小值。 在二分查找的每一步中左边界为low右边界为high区间的中点为pivot最小值就在该区间内。我们将中轴元素nums[pivot]与右边界元素nums[high]进行比较可能会有以下的三种情况 第一种情况是nums[pivot]nums[high]。这说明nums[pivot]是最小值右侧的元素因此我们可以忽略二分查找区间的右半部分。 第二种情况是nums[pivot]nums[high]。这说明nums[pivot]是最小值左侧的元素因此我们可以忽略二分查找区间的左半部分。 由于数组不包含重复元素并且只要当前的区间长度不为1pivot就不会与high重合而如果当前的区间长度为1这说明我们已经可以结束二分查找了。因此不会存在nums[pivot]nums[high]的情况。 当二分查找结束时我们就得到了最小值所在的位置。 class Solution {public int findMin(int[] nums) {int low 0;int high nums.length - 1;while (low high) {int pivot low (high - low) / 2;if (nums[pivot] nums[high]) {high pivot;} else {low pivot 1;}}return nums[low];} }时间复杂度 时间复杂度为O(log⁡n)其中n是数组nums的长度。在二分查找的过程中每一步会忽略一半的区间因此时间复杂度为O(log⁡n)。 空间复杂度 O(1)。 主要思路 单调递增的序列 **** *做了旋转 * ****用二分法查找需要始终将目标值这里是最小值套住并不断收缩左边界或右边界。 左、中、右三个位置的值相比较有以下几种情况 左值 中值, 中值 右值 没有旋转最小值在最左边可以收缩右边界右中左左值 中值, 中值 右值 有旋转最小值在左半边可以收缩右边界 左 右中左值 中值, 中值 右值 有旋转最小值在右半边可以收缩左边界 中 左 右左值 中值, 中值 右值 单调递减不可能出现 左中右分析前面三种可能的情况会发现情况1、2是一类情况3是另一类。 【1】如果中值 右值则最小值在左半边可以收缩右边界。 【2】如果中值 右值则最小值在右半边可以收缩左边界。 【3】通过比较中值与右值可以确定最小值的位置范围从而决定边界收缩的方向。 而情况1与情况3都是左值 中值但是最小值位置范围却不同这说明如果只比较左值与中值不能确定最小值的位置范围。所以我们需要通过比较中值与右值来确定最小值的位置范围进而确定边界收缩的方向。 接着分析解法里的一些问题首先是while循环里的细节问题。这里的循环不变式是left right, 并且要保证左闭右开区间里面始终套住最小值。 中间位置的计算mid left (right - left) / 2这里整数除法是向下取整的地板除mid更靠近left再结合while循环的条件left right可以知道left midmid right即在while循环内mid始终小于right。因此在while循环内nums[mid]要么大于要么小于nums[right]不会等于。这样else {right mid;}这句判断可以改为更精确的else if (nums[mid] nums[right]) {right mid;}。 再分析一下while循环退出的条件。 如果输入数组只有一个数左右边界位置重合left right不会进入while循环直接输出。 如果输入数组多于一个数循环到最后会只剩两个数nums[left] nums[mid]以及nums[right]这里的位置left mid right - 1。 如果nums[left] nums[mid] nums[right]则左边大、右边小需要执行left mid 1使得left right左右边界位置重合循环结束nums[left]与nums[right]都保存了最小值。 如果nums[left] nums[mid] nums[right]则左边小、右边大会执行right mid使得left right左右边界位置重合循环结束nums[left]、nums[mid]、nums[right]都保存了最小值。 细化了的代码 class Solution {public int findMin(int[] nums) {int left 0;int right nums.length - 1; /* 左闭右闭区间如果用右开区间则不方便判断右值 */ while (left right) { /* 循环不变式如果left right则循环结束 */int mid left (right - left) / 2; /* 地板除mid更靠近left */if (nums[mid] nums[right]) { /* 中值 右值最小值在右半边收缩左边界 */ left mid 1; /* 因为中值 右值中值肯定不是最小值左边界可以跨过mid */ } else if (nums[mid] nums[right]) { /* 明确中值 右值最小值在左半边收缩右边界 */ right mid; /* 因为中值 右值中值也可能是最小值右边界只能取到mid处 */ }}return nums[left]; /* 循环结束left right最小值输出nums[left]或nums[right]均可 */ } };再讨论一个问题 为什么左右不对称为什么比较mid与right而不比较mid与left能不能通过比较mid与left来解决问题 左右不对称的原因是 这是循环前升序排列的数左边的数小右边的数大而且我们要找的是最小值肯定是偏向左找所以左右不对称了。 为什么比较mid与right而不比较mid与left 具体原因前面已经分析过了简单讲就是因为我们找最小值要偏向左找目标值右边的情况会比较简单容易区分所以比较mid与right而不比较mid与left。 那么能不能通过比较mid与left来解决问题 能转换思路不直接找最小值而是先找最大值最大值偏右可以通过比较mid与left来找到最大值最大值向右移动一位就是最小值了需要考虑最大值在最右边的情况右移一位后对数组长度取余。 以下是先找最大值的代码可以与前面找最小值的比较 class Solution {public int findMin(int[] nums) {int left 0;int right nums.length - 1; while (left right) {int mid left (right - left 1) / 2; /* 先加一再除mid更靠近右边的right */if (nums[left] nums[mid]) {left mid; /* 向右移动左边界 */} else if (nums[left] nums[mid]) {right mid - 1; /* 向左移动右边界 */}}return nums[(right 1) % nums.length]; /* 最大值向右移动一位就是最小值了需要考虑最大值在最右边的情况右移一位后对数组长度取余 */} };使用left right作while循环条件可以很方便推广到数组中有重复元素的情况只需要在nums[mid] nums[right]时挪动右边界就行 class Solution {public int findMin(int[] nums) {int left 0;int right nums.length - 1; while (left right) {int mid left (right - left) / 2;if (nums[mid] nums[right]) {left mid 1;} else if (nums[mid] nums[right]) {right mid;} else {right--;}}return nums[left];} };初始条件是左闭右闭区间right nums.size() - 1那么能否将while循环的条件也选为左闭右闭区间left right 可以的代码如下 class Solution {public int findMin(int[] nums) {int left 0;int right nums.length - 1; while (left right) { // 循环的条件选为左闭右闭区间left rightint mid left (right - left) / 2;if (nums[mid] nums[right]) { // 注意是当中值大于等于右值时left mid 1; // 将左边界移动到中值的右边} else { // 当中值小于右值时right mid; // 将右边界移动到中值处}}return nums[right]; // 最小值返回nums[right]} };这道题还有其它解法 始终将nums[mid]与最右边界的数进行比较相当于在每次裁剪区间之后始终将最右边的数附在新数组的最右边。 class Solution {public int findMin(int[] nums) {int right_boundary nums[nums.length - 1];int left 0;int right nums.length - 1;while (left right) {int mid left (right - left) / 2;if (nums[mid] right_boundary) { left mid 1;} else { right mid;}}return nums[left];} };或者在处理了第一种情况之后始终将nums[mid]与最左边界的数nums[0]进行比较即相当于在每次裁剪区间之后始终将最左边的数附在新数组的最左边再不断处理情况2及情况3。 class Solution:def findMin(self, nums: List[int]) - int:left, right 0, len(nums) - 1if nums[left] nums[right]:return nums[left]while left right:mid (left right) 1if nums[0] nums[mid]:right midelse:left mid 1return nums[left]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/914159.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

做网站用vs还是dw德阳企业品牌网站建设

一、AR模型(自回归) AR探索趋势和周期性 预测依赖于过去的观测值和模型中的参数。模型的阶数 p pp 决定了需要考虑多少个过去时间点的观测值。 求AR模型的阶数 p和参数 ϕ i \phi_i ϕi​ ,常常会使用统计方法如最小二乘法、信息准则(如AIC、BIC&#xf…

吉林网站优化信息门户登录入口

1、函数指针 函数指针是指向函数的指针变量。它可以用于存储函数的地址,允许在运行时动态选择要调用的函数。(是一个指针) //函数指针的形式 返回类型 (*指针变量名) 参数列表int add(int a,int b){return ab; }int subtract(int a,int b){…

金属质感 网站怎么拥有自己的网站

目录 一、INNER JOIN(内连接,等值连接) 二、LEFT JOIN(左连接) 三、RIGHT JOIN(右连接): 一、INNER JOIN(内连接,等值连接) 用途:获取两个表中字段能匹配上…

个人网站 程序百度后台推广登录

表情识别 | LBPSVM实现脸部动态特征的人脸表情识别程序(Matlab) 目录 表情识别 | LBPSVM实现脸部动态特征的人脸表情识别程序(Matlab)预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1 运行环境 程序运行在Windows系统下&am…

翠屏区网站建设企业年金的好处和坏处

总体安装过程已经很明白了,写的人很多了,我就不赘述了,可以参考这里或者其他博客。我主要记录几个我遇到的问题以及解决方法。 1、cmake报错:No CMAKE_CUDA_COMPILER could be found. 这个原因是没找到cuda和nvcc目录&#xff0…

Gemini-2.5-Flash-Image-Preview 与 GPT-4o 图像生成能力技术差异解析​ - 教程

Gemini-2.5-Flash-Image-Preview 与 GPT-4o 图像生成能力技术差异解析​ - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-f…

鸿蒙ArkTS Canvas实战:转盘抽奖程序开发教程(基础到进阶) - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

做服装的网站免实名域名购买

centos 7 重启服务器 内容精选换一换本节操作介绍Linux操作系统云服务器在单用户模式下重置密码的操作步骤。本文档适用于X86架构的弹性云服务器。进入单用户模式下重置root密码前请先做好数据备份。请根据操作系统类型选择操作步骤:CentOS 8系列CentOS 7/EulerOS 系…

潍坊网站建设公司慕枫山东监理工程师考试最新消息

TypeScript数组和对象的操作 一、数组的声明二、数组初始化三、数组元素赋值、添加、更改四、删除五、合并、断开数组六、查找数组元素位置七、连接数组元素八、排序、反序数组九、遍历请看这里 一、数组的声明 let arr1: Array<number>; let arr2: number[];二、数组初…

织梦菜谱网站模板免费下载wordpress无法用ftp

等额本息贷款和等额本金贷款的月供应该怎么算&#xff1f; 从一个例子开始&#xff0c;假设我要从银行贷款36万(即&#xff0c;本金)&#xff0c;银行给出的贷款年利率是12%(月利率为年利率除以12)&#xff0c;贷款半年(6个月)&#xff0c;按月还款&#xff0c;分6期还完。 问分…

资讯类网站开发文档济南制作网站

此系列文章收录在公众号中&#xff1a;数据大宇宙 > 数据处理 >E-pd转发本文并私信我"python"&#xff0c;即可获得Python资料以及更多系列文章(持续更新的)经常听别人说 Python 在数据领域有多厉害&#xff0c;结果学了很长时间&#xff0c;连数据处理都麻烦得…

天津公司建设网站公司网站建设的策划方案

IEEE Transactions on Affective Computing上的一篇文章&#xff0c;做微表情识别&#xff0c;阅读完做个笔记。本文讨论了Data Leakage对模型准确度评估的影响&#xff0c;及如何融合多个微表情数据集&#xff0c;从而提升模型的准确度。工作量非常饱满&#xff0c;很认真&…

网站动效怎么做的网络服务费分录

#MYSQL#这是我MySQL的第八篇教程。本篇主要介绍的是MySQL的组合查询的用法。在大多数的SQL查询中都只包含从一个或者多个表中返回数据的单条SELECT语句&#xff0c;MySQL其实也支持允许执行多条SELECT语句&#xff0c;并将结果作为单个结果集返回&#xff0c;这些组合查询通常称…

什么网站可以接单做高端网网站建设

复合类型 复合类型是一种由其他类型组成的类型。它可以是数组、结构体、联合体或指向这些类型的指针。复合类型允许将多个值组合成单个实体&#xff0c;以便更方便地处理和使用。复合类型在C语言中非常常见&#xff0c;用于表示复杂的数据结构和组织数据的方式。 数组是一种由…

做商城网站的项目背景图片wordpress中文支持

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

韩雪冬模板网站怎么注册一个网站做色流

一、Redis持久化的两种方法&#xff1a; RDB&#xff08;Redis DataBase Backup file&#xff09;Redis数据备份文件 与AOF&#xff08;Append Only File&#xff09;追加文件 二、RDB 1、介绍 RDB 简单来说就是将物理内存中的数据快照写入磁盘中,当Redis实例宕机时&…

dede一键更新网站wordpress插件去掉广告

3月21日&#xff0c;在巴黎举办的云原生顶级峰会KubeCon EU 2024上 &#xff0c;华为云首席架构师顾炯炯在“Cloud Native x AI&#xff1a;以持续开源创新开启智能时代”的主题演讲中指出&#xff0c;云原生和AI技术的融合&#xff0c;是推动产业深刻变革的关键所在。华为云将…

做网站 违法推广类电商文案

ssh: connect to host github.com port 22: Connection refused 问题现象 本文以Windows系统为例进行说明&#xff0c;在个人电脑上使用Git命令来操作GitHub上的项目&#xff0c;本来都很正常&#xff0c;突然某一天开始&#xff0c;会提示如下错误ssh: connect to host gith…

电商网站建设流程中文手机app开发软件

RGB空间中的彩色图像分割 ⭐️ 为尊重原创性&#xff01;转载请注明出处&#xff1a;©️ Sylvan Ding’s Blog 概述 本文论述了基于欧式距离和曼哈顿距离的彩色图像分割算法&#xff0c;并用python实现了各个算法。之后将二者的优势结合&#xff0c;提出了改进后的曼哈顿…

腾云网站建设wordpress多媒体大小

附介绍&#xff1a;四位来自麻省理工学院的研究人员蒂娜卡塔比&#xff08;Dina Katabi&#xff09;、海塞姆哈桑&#xff08;Haitham Hassanieh&#xff09;、比欧特因迪克&#xff08;Piotr Indyk&#xff09;和埃里克普里斯&#xff08;Eric Price&#xff09;今年1月&#…