常州培训做网站哪些软件可以做网页

news/2025/10/3 13:59:22/文章来源:
常州培训做网站,哪些软件可以做网页,微信官方网站是多少钱,wordpress撰写设置文章目录 1.二分查找1.1题目1.2思路#xff08;核心#xff1a;区间的定义#xff09;1.3左闭右闭1.4左闭右开1.5总结 2.移除元素2.1题目2.1思路2.2.1暴力解法2.2.2双指针法 23总结 3.有序数组的平方3.1题目3.2思路3.2.1暴力解法3.2.2双指针法 4.长度最小的子数组4.1题目4.2… 文章目录 1.二分查找1.1题目1.2思路核心区间的定义1.3左闭右闭1.4左闭右开1.5总结 2.移除元素2.1题目2.1思路2.2.1暴力解法2.2.2双指针法 23总结 3.有序数组的平方3.1题目3.2思路3.2.1暴力解法3.2.2双指针法 4.长度最小的子数组4.1题目4.2思路4.2.1暴力解法4.2.2滑动窗口双指针升级 5.螺旋矩阵25.1题目5.2思路 1.二分查找 1.1题目 704.二分查找—力扣题目链接 题目给定一个 n 个元素有序的升序整型数组 nums 和一个目标值 target 写一个函数搜索 nums 中的 target如果目标值存在返回下标否则返回 -1。示例一 输入: nums [-1,0,3,5,9,12], target 9 输出: 4 解释: 9 出现在 nums 中并且下标为 4示例二 输入: nums [-1,0,3,5,9,12], target 2 输出: -1 解释: 2 不存在 nums 中因此返回 -11.2思路核心区间的定义 题目的前提是数组为有序数组同时题目还强调 数组中无重复元素因为一旦有重复元素使用二分查找法返回的元素下标可能不是唯一的这些都是使用二分法的前提条件当大家看到题目描述满足如上条件的时候可要想一想是不是可以用二分法了。 1.3左闭右闭 定义target在 [left, right] 区间所以有如下两点 while (left right) 要使用 因为left right是有意义的所以使用 if (nums[middle] target) right 要赋值为 middle - 1因为当前这个nums[middle]一定不是target那么接下来要查找的左区间结束下标位置就是 middle - 1下面举例演示在一组有序不重复数组中分别查找数据2、数据6的过程 /*** Description 二分查找第一种写法左闭右闭* Param* Return 下标值int*/public int binarySearch1(int[] arr,int target){int left0;int rightarr.length-1;while(leftright){/*** 写法一可能出现溢出情况* int mid(leftright)/2;* 写法二* int midleft(right-left)/2;*///写法三右移运算符 代替 除号int midleft((right-left)1);if(arr[mid]target){ //在左区间即[left,mid-1]rightmid-1;}else if(arr[mid]target){ //在右区间即[mid1,right]leftmid1;}else{return mid;}}return -1;}时间复杂度O(log n)空间复杂度O(1) 1.4左闭右开 如果说定义 target 是在一个在左闭右开的区间里也就是[left, right) 那么二分法的边界处理方式则截然不同。 while (left right)这里使用 ,因为left right在区间[left, right)是没有意义的if (nums[middle] target) right 更新为 middle因为当前nums[middle]大于target去左区间继续寻找而寻找区间是左闭右开区间所以right更新为middle即下一个查询区间不会去比较nums[middle] 代码示例 /*** Description 二分查找第一种写法左闭右闭* Param* Return 下标值int*/public int binarySearch2(int[] arr,int target){int left0;int rightarr.length;while(leftright){int midleft((right-left)1);if(arr[mid]target){ //在左区间即[left,mid-1)rightmid;}else if(arr[mid]target){ //在右区间即[mid1,righ)leftmid1;}else{return mid;}}return -1;}时间复杂度O(log n)空间复杂度O(1) 1.5总结 使用二分查找的两个前提 数组有序数组元素唯一不重复 二分查找的两个写法区分 左闭右闭左闭右开right初始取值rightarr.length-1rightarr.length循环条件while(leftright)while(leftright)left更新值到右区间查找leftmid1leftmid1right更新值到左区间查找rightmid-1rightmid 2.移除元素 27.移除元素_力扣链接 2.1题目 给你一个数组 nums 和一个值 val你需要 原地 移除所有数值等于 val 的元素并返回移除后数组的新长度。 不要使用额外的数组空间你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。 示例1 输入nums [3,2,2,3], val 3 输出2, nums [2,2] 解释函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。你不需要考虑数组中超出新长度后面的元素。例如函数返回的新长度为 2 而 nums [2,2,3,3] 或 nums [2,2,0,0]也会被视作正确答案。示例2 输入nums [0,1,2,2,3,0,4,2], val 2 输出5, nums [0,1,3,0,4] 解释函数应该返回新的长度 5, 并且 nums 中的前五个元素为 0, 1, 3, 0, 4。注意这五个元素可为任意顺序。你不需要考虑数组中超出新长度后面的元素。2.1思路 2.2.1暴力解法 两层for循环一个for循环遍历数组元素 第二个for循环更新数组。 class Solution {public int removeElement(int[] nums, int val) {int total0;for(int i0;inums.length;i){if(nums[i]val){//发现该val值将该位置后面的数组都往前移动一位for(int ji1;jnums.length;j){nums[j-1]nums[j];}i--;//结束内层循环后执行i命令但是原来的nums[i1]位置上的元素已经被覆盖为nums[i2]total;}}return nums.length-total;} }2.2.2双指针法 定义通过一个快指针和慢指针在一个for循环下完成两个for循环的工作。 快指针寻找新数组的元素 新数组就是不含有目标元素的数组慢指针指向更新 新数组下标的位置 演示 代码 class Solution {public int removeElement(int[] nums, int val) {int total0;//快慢指针int slowIndex0;for(int fastIndex0;fastIndexnums.length;fastIndex){if(nums[fastIndex]!val){//将快指针的值赋予慢指针的值并同时向前移动nums[slowIndex]nums[fastIndex];slowIndex;}else{//找到该值暂停慢指针total;}}return nums.length-total;} }注意这些实现方法并没有改变元素的相对位置 时间复杂度O(n)空间复杂度O(1) 23总结 双指针法快慢指针法在数组和链表的操作中是非常常见的很多考察数组、链表、字符串等操作的面试题都使用双指针法。 3.有序数组的平方 3.1题目 977.有序数组的平方——力扣题目链接 给你一个按 非递减顺序 排序的整数数组 nums返回 每个数字的平方 组成的新数组要求也按 非递减顺序 排序。 示例一 输入nums [-4,-1,0,3,10] 输出[0,1,9,16,100] 解释平方后数组变为 [16,1,0,9,100] 排序后数组变为 [0,1,9,16,100]示例二 输入nums [-7,-3,2,3,11] 输出[4,9,9,49,121]3.2思路 3.2.1暴力解法 遍历数组将数组的每个元素平方接着排个序即可 3.2.2双指针法 原数组是 有序 的就是说数字0的左区间平方后的元素越左边越大、右区间平方后的元素越右边越大 由此可以得出平方后的数组最大值不是在原数组最左边就是最右边 考虑双指针法了i指向起始位置j指向终止位置 示意图 class Solution {public int[] sortedSquares(int[] nums) {//思路原数组有序那最大值不是在最左边就是在最右边//双指针分别指向最左边和最右边并新建一个数组将最大值移向数组的最后面int lennums.length;int jnums.length-1;int knums.length-1;int[] arrnew int[len];for(int i0;ij;i){ //循环条件 ij最后要处理最后一个元素if(nums[i]*nums[i]nums[j]*nums[j]){// i位置的元素的绝对值大arr[k--]nums[i]*nums[i];}else{// j位置的元素的绝对值大arr[k--]nums[j]*nums[j];i--; //i保持不动j--;}}return arr;} }4.长度最小的子数组 4.1题目 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 连续子数组 [numsl, numsl1, ..., numsr-1, numsr] 并返回其长度**。**如果不存在符合条件的子数组返回 0 。 示例一 输入target 7, nums [2,3,1,2,4,3] 输出2 解释子数组 [4,3] 是该条件下的长度最小的子数组。示例二 输入target 4, nums [1,4,4] 输出1示例三 输入target 11, nums [1,1,1,1,1,1,1,1] 输出04.2思路 4.2.1暴力解法 解法一暴力解法两层for循环第一层为子序列的起始位置第二层为子序列的终点位置在第二层中逐渐累加子序列的值若发现target则与原来的子序列长度比较是否需要替换 class Solution {public int minSubArrayLen(int target, int[] nums) {int minInteger.MAX_VALUE; //子序列的值int sum0;for(int i0;inums.length;i){ //i为起始位置sum0; //重置sum0for(int ji;jnums.length;j){ //j为终点位置sumnums[j];if(sumtarget){minmin(j-i1)?(j-i1):min; //更新子序列的长度}}}return minInteger.MAX_VALUE?0:min;} }4.2.2滑动窗口双指针升级 解法二滑动窗口 问题如何使用一个for循环就能确定子序列的起始、终点位置解决 动态更改子序列的起始位置for循环确定子序列的终点位置只要当sumtarget第一更新子序列长度的值第二滑动子序列的起始位置先更新子序列总和再滑动 class Solution {public int minSubArrayLen(int target, int[] nums) {int minInteger.MAX_VALUE;int sum0;int i0; //i为起始位置for(int j0;jnums.length;j){ //j为终点位置sumnums[j];while(sumtarget){//1、更新子序列的长度minmin(j-i1)?(j-i1):min;//2、滑动起始位置先减去初始位置的值再滑动sum-nums[i];i;}}return minInteger.MAX_VALUE?0:min;} }5.螺旋矩阵2 5.1题目 59. 螺旋矩阵 II 给你一个正整数 n 生成一个包含 1 到 n2 所有元素且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 示例一 输入n 3 输出[[1,2,3],[8,9,4],[7,6,5]]示例二 输入n 1 输出[[1]]5.2思路 每次赋值可分为4次上、右、下、左 首先明确每次赋值确保都是左闭右开即1 23 45 67 8 循环的圈数loopn/2n为3时循环一圈n为4时循环两圈若 n为奇数则最后中间还有个值arr(n/2)(n/2)每次循环过后右边界都要缩小一格注意每次循环过后起始点的位置 class Solution {public int[][] generateMatrix(int n) {int loopn/2;int count1;int[][] arrnew int[n][n];int start0; //每次循环的开始点start,startint i0;int j0;int offset1; //每次循环右边界收缩一位控制每条边的遍历长度for(int k0;kloop;k){ //k表示正在循环的圈数istart; //更新起始点jstart;//上从左到右for(jstart;jn-offset;j){arr[i][j]count;}//右从上到下for(istart;in-offset;i){arr[i][j]count;}//下从右到左for(;jstart;j--){arr[i][j]count;}//左从下到上for(;istart;i--){arr[i][j]count;}start; //循环起始点加一offset;}if (n % 2 1) {arr[n/2][n/2] count;}return arr;} }

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

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

相关文章

郑州app网站公司设计教程

Puppet 于本周发布了一份2024年的 DevOps 现状报告 The State of DevOps Report: The Evolution of Platform Engineering。该报告显示了平台工程的持续成熟,43%的受访者报告称他们的平台团队已经存在至少3-5年。 自2012年以来,Puppet 每年发布的关于 De…

深圳勘察设计协会网站国际货代做网站

第4章操作系统基础第五版Aimin.rar转载于:https://www.cnblogs.com/emanlee/archive/2010/10/14/1851101.html

知名的网站设计公司wordpress微信免签约支付插件

数据质量管理简介 数据质量管理是一个持续性的管理动作,有些人在做数据质量管理的时候会陷入一步到位的误区,想要通过一个工具、平台,或者一套质检规则就完成整体的数据质量管理,而实际数据质量管理从数据接入的那一刻就需要介入…

电子系统设计网站网站怎么添加软件

Nginx简介Nginx发展介绍Nginx作者正向代理和反向代理概念网站代理服务器查看Nginx环境搭建下载安装前准备安装启动检测Nginx是否启动关闭重启Nginx核心配置文件说明Nginx主要功能1、静态网站部署2、负载均衡负载均衡概述负载均衡实现方式Nginx负载均衡策略负载均衡其他配置3、静…

东莞黄江建设银行网站ps个人网站制作流程

下载opencv和opencv_contrib,cmake过程中要下载的一些包可以手动下载配置,如果网络较好,也可以等待自动下载。主要记录的是cmake命令: cmake -D CMAKE_BUILD_TYPERELEASE \-D BUILD_opencv_python3YES \-D CMAKE_INSTALL_PREFIX/…

软件公司网站模版网站备案号位置

如何在Python中实现设计模式? 设计模式是在软件开发中解决常见问题的最佳实践。它们提供了在特定上下文中对软件设计的重复使用性解决方案。Python,作为一种灵活且强大的编程语言,非常适合实现各种设计模式。下面,我将介…

Jenkins安装并与GitLab集成,实现dev、qa、uat、prod多分支持续集成的详细步骤 - 指南

Jenkins安装并与GitLab集成,实现dev、qa、uat、prod多分支持续集成的详细步骤 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; …

推荐系统中损失函数梳理:从Pointwise到Listwise

推荐系统中损失函数梳理:从Pointwise到Listwise推荐系统中的损失函数梳理:从Pointwise到Listwise 引言:目标决定损失函数选择 推荐系统通常采用两阶段架构:召回(Recall)与精排(Ranking)。两个阶段的优化目标存…

怎样免费建设免费网站wordpress如何做网站

新能源充电桩是智慧城市建设中不可缺少且可持续发展的重要设施,而工业4G路由器物联网应用为其提供了更加高效、智能、实时的管理方式。充电桩通过工业4G路由器可以与充电运营商的管理中心建立稳定的连接,实现双向数据传输,为用户提供优质的充…

网站子站怎么做、南宁建站热搜

链接&#xff1a;zoj 1115 或 hdoj 1013 或poj 1519 虽说是水题&#xff0c;却几经波折才搞定。该题目中的数字可能非常大&#xff0c;所以不能使用整型数&#xff0c;只能采用字符变量 代码如下&#xff1a; #include <stdio.h>int digitalRoot(int n); int digitS…

ZR 2025 十一集训 #1

100 + 70 + 0 + 0 = 170, Rank 38/101.良心模拟赛,吊打 MX。25十一集训day1 链接:link 题解:题目内 时间:4.5h (2025.10.03 08:30~13:00) 题目数:4 难度:A B C D\(\color{#52C41A} 绿\)*1600估分:100 + 90 + 0…

Channel-Driven 降低模块耦合设计复杂度

新手在 RTL 设计中往往以算法原型的功能为出发点,而低估了控制流的实现难度。实际开发过程中,算法功能对应的模块很快完成,而“黏合”模块间的控制流设计却迟迟不能按预期进度验证通过,不断延误开发周期 本人血淋淋…

how to download a websites favicon.ico

A site’s favicon is usually stored in one of a few predictable places, but it isn’t always straightforward. Here’s how you can grab it:1. Check the site’s HTMLOpen the website in your browser.Right…

JQuery CDN recommended

The URL you provided points to a specific version of the jQuery library (v2.0.0) hosted on Baidus CDN. However, Baidus CDN for jQuery has been deprecated for several years now, and its generally not re…

mini-spring实现

一、简介 基于bilibili up主“学java的生生”的手写spring教程,实现一个简单的spring框架。mini-spring包含的核心功能有:包扫描,BeanDefinition封装,IOC容器,依赖注入,生命周期管理,按类型/名称获取Bean等功能…

PML(Perfect Match Layer)介绍 - 实践

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

手机自助网站建设企业门户是什么

接着这一问题衍生出来的问题 arcgis的MapServer服务查询出来的结果geometry坐标点带*的问题-CSDN博客 个人感觉像是server版本的问题&#xff0c;具体不清楚&#xff0c;pg数据库里面的shape点集合坐标点的精度是8&#xff0c;但是server服务查出来的默认都十几位。所以存在一…

揭阳装修网站建设数字资产交易网站建设

说明&#xff1a; 《火球——UML大战需求分析》是我撰写的一本关于需求分析及UML方面的书&#xff0c;我将会在CSDN上为大家分享前面几章的内容&#xff0c;总字数在几万以上&#xff0c;图片有数十张。欢迎你按文章的序号顺序阅读&#xff0c;谢谢&#xff01;本书已经在各大网…

利用STM32CubeMX创建新的工程,使用vscode进行编码和调试

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

网站开发网站维护这行业怎么样wordpress 获取相关文章

来源&#xff1a;AI中国大脑的进化进程持续已久&#xff0c;从5亿年前的蠕虫大脑到现如今各种现代结构。例如&#xff0c;人类的大脑可以完成各种各样的活动&#xff0c;其中许多活动都是毫不费力的。例如&#xff0c;分辨一个视觉场景中是否包含动物或建筑物对我们来说是微不足…