尧图网络科技 Logo 尧图网络科技
  • 首页
  • 关于我们
  • 建站服务
  • UI 设计
  • 案例展示
  • SEO 优化
  • 资讯中心
  • 联系我们

资讯详情

深度解读 · 专业分析

  • 首页
  • 资讯中心
  • /
  • 代码随想录算法训练营第一天:数组part01

最新资讯

  • 全部资讯
  • 行业动态
  • UI 设计
  • SEO 优化
  • 网站开发

代码随想录算法训练营第一天:数组part01

📅 发布时间:2026/6/21 10:10:12 👁 浏览次数:
代码随想录算法训练营第一天:数组part01

代码随想录算法训练营第一天:数组part01

** 704. 二分查找 **
leetcode链接:https://leetcode.cn/problems/binary-search/
题目描述:给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。
核心思路:二分法。当数组为有序数组时可以使用。时间复杂度:O(logn) 空间复杂度:O(1)

点击查看代码
```cpp
class Solution {
public:int search(vector<int>& nums, int target) {int left = 0,right = nums.size() - 1;while(left <= right){ //**mistake1:**"=",左闭右闭区间时,应包含=的情况。int mid = left + (right - left) / 2;if(target < nums[mid]){//**mistake2**:使用nums[mid]而不是mid,粗心right = mid - 1;}else if(target > nums[mid]){left = mid + 1;}else{return mid;}}return -1;}
};
</details>
另一种情况,当区间为左闭右开时,right取值为nums.size(),循环条件不在包含=的情况,当nums[mid]与target比较时,当nums[mid]>target时,right = nums[mid];** 27. 移除元素**
leetcode链接:https://leetcode.cn/problems/remove-element/
题目描述:给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。
不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并原地修改输入数组。
元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。
示例 1: 给定 nums = [3,2,2,3], val = 3, 函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。 你不需要考虑数组中超出新长度后面的元素。示例 2: 给定 nums = [0,1,2,2,3,0,4,2], val = 2, 函数应该返回新的长度 5, 并且 nums 中的前五个元素为 0, 1, 3, 0, 4。
你不需要考虑数组中超出新长度后面的元素。使用方法:暴力法或者双指针法。
暴力法:双循环嵌套,主要注意有效长度size,需理解size和i--的含义,原文并没有讲清楚这一点。
<details>
<summary>点击查看代码</summary>
class Solution {
public:int removeElement(vector<int>& nums, int val) {int size = nums.size();//定义size为数组的有效范围for(int i = 0;i < size;i++){if(nums[i] == val){for(int j = i + 1;j < size;j++){nums[j-1] = nums[j];}i--;//当剔除元素时,i--后再++确保了在原地进行修改size--;//size--则是将有效范围-1,相当于删去了最后一位,因为最后一位的数值已复制到前一位,随着循环进行,需要删除的数一直往前赋值就可以实现在原地进行修改}}return size;}
};
</details>双指针法:双指针的核心在于如何设计双指针。
<details>
<summary>点击查看代码</summary>
class Solution {
public:int removeElement(vector<int>& nums, int val) {int slowly = 0;for(int fast = 0;fast<nums.size();fast++){if(nums[fast] != val){nums[slowly++] = nums[fast];//核心:当找到目标值时,slowly停止移动,而fast会继续移动到下一位。如果下一位不等于目标值,此时slowly被覆盖后向下继续移动}}return slowly;}
};
</details>
**27. 移除元素**
leetcode链接:https://www.bilibili.com/video/BV12A4y1Z7LP
题目描述:给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。
思路:双指针法。同样是如何设计双指针,由于数组非递减,考虑将双指针指向数组两端,指向的数开平方后进行比较,定义一个新数组result来存储比较的结果。
首先使用暴力法,快速排序
<details>
<summary>点击查看代码</summary>
class Solution {
public:vector<int> sortedSquares(vector<int>& nums) {for(int i = 0;i < nums.size();i++){nums[i] *= nums[i];}sort(nums.begin(),nums.end());//快排return nums;}
};
</details>双指针法:
<details>
<summary>点击查看代码</summary>
class Solution {
public:vector<int> sortedSquares(vector<int>& nums) {vector<int> result(nums.size(),0);int k = nums.size() - 1;for(int i = 0, j = nums.size() - 1;i <= j;){//for( 初始化表达式 ; 条件判断表达式 ; 递增/递减表达式 )if(nums[i]*nums[i] < nums[j]*nums[j]){result[k--] = nums[j]*nums[j];j--;}else{result[k--] = nums[i]*nums[i];i++;}}return result;}
};
</details>

相关新闻

RecoveryTools

RecoveryTools

2026/6/22 0:34:34 查看详情
251120一波三折的一天啊

251120一波三折的一天啊

2026/6/21 6:35:22 查看详情
20232312 2025-2026-1 《网络与系统攻防技术》实验六实验报告

20232312 2025-2026-1 《网络与系统攻防技术》实验六实验报告

2026/6/21 8:13:24 查看详情
武汉市江汉区房屋修缮|维小达|窗户维修、吊顶维修、壁纸壁布、墙面维修、石材修复、瓷砖美缝、瓷砖维修全屋一站式旧房翻新破损修护服务 - 维小达科技

武汉市江汉区房屋修缮|维小达|窗户维修、吊顶维修、壁纸壁布、墙面维修、石材修复、瓷砖美缝、瓷砖维修全屋一站式旧房翻新破损修护服务 - 维小达科技

2026/6/22 1:25:42 查看详情
FanControl终极配置指南:Windows风扇控制软件的完整解决方案

FanControl终极配置指南:Windows风扇控制软件的完整解决方案

2026/6/22 1:25:54 查看详情
2026石家庄防水补漏避坑指南:卫生间/厨房/阳台/屋顶/地下室漏水检测维修全攻略,正规施工+透明报价+口碑榜靠谱服务商推荐 - 安佳防水

2026石家庄防水补漏避坑指南:卫生间/厨房/阳台/屋顶/地下室漏水检测维修全攻略,正规施工+透明报价+口碑榜靠谱服务商推荐 - 安佳防水

2026/6/22 1:25:54 查看详情
3分钟搭建同花顺自动化交易系统:Python量化交易终极指南

3分钟搭建同花顺自动化交易系统:Python量化交易终极指南

2026/6/22 1:25:54 查看详情
2026玉林漏水检测维修本地口碑防水商家榜单:厨卫/阳台/屋面/地下室渗漏水维修,持证施工+明码实价,防水补漏公司TOP5推荐 - 即刻修防水

2026玉林漏水检测维修本地口碑防水商家榜单:厨卫/阳台/屋面/地下室渗漏水维修,持证施工+明码实价,防水补漏公司TOP5推荐 - 即刻修防水

2026/6/22 1:25:54 查看详情
大模型微调中的幻觉问题:自蒸馏与参数冻结的解决方案

大模型微调中的幻觉问题:自蒸馏与参数冻结的解决方案

2026/6/22 1:25:54 查看详情
2026年江浙沪皖塑料件开模定制厂家实力盘点 - 起跑123

2026年江浙沪皖塑料件开模定制厂家实力盘点 - 起跑123

2026/6/22 0:01:21 查看详情
Java方法详解

Java方法详解

2026/6/22 0:01:21 查看详情
构建AI驱动的自动化测试框架:从智能体架构到工程实践

构建AI驱动的自动化测试框架:从智能体架构到工程实践

2026/6/22 0:01:21 查看详情
WSL2下部署Openclaw:Windows开发者高效落地AI智能体的实践指南

WSL2下部署Openclaw:Windows开发者高效落地AI智能体的实践指南

2026/6/21 0:01:30 查看详情
GameServerManager:游戏服务器管理的终极解决方案

GameServerManager:游戏服务器管理的终极解决方案

2026/6/21 0:01:30 查看详情
实验室无尘室设计规范解析——华川洁净 - 华川洁净

实验室无尘室设计规范解析——华川洁净 - 华川洁净

2026/6/21 0:01:30 查看详情
YOLOv11涨点改进| CVPR 2026 | 独家创新首发、特征融合改进篇| 引入CMGF 引导特征融合机制,实现对不同模态特征的自适应增强与高效融合,助力多模态目标检测,小目标检测或分割有效涨点

YOLOv11涨点改进| CVPR 2026 | 独家创新首发、特征融合改进篇| 引入CMGF 引导特征融合机制,实现对不同模态特征的自适应增强与高效融合,助力多模态目标检测,小目标检测或分割有效涨点

2026/6/21 19:13:40 查看详情
E-E-A-T 成第一权重:2027 年无经验内容将被彻底淘汰

E-E-A-T 成第一权重:2027 年无经验内容将被彻底淘汰

2026/6/20 4:40:29 查看详情
深圳福田园岭老小区搬家公司推荐 经验足师傅高效搬运攻略 - 从来都是英雄出少年

深圳福田园岭老小区搬家公司推荐 经验足师傅高效搬运攻略 - 从来都是英雄出少年

2026/6/20 22:03:27 查看详情

关于尧图

立足北京本地的一站式网站建设服务与设计教学平台,深耕企业网站定制开发、全网 SEO 优化及网络推广服务。

快速链接

  • 关于我们
  • 建站服务
  • 案例展示
  • 资讯中心

服务项目

  • 企业官网定制
  • UI 界面设计
  • SEO 优化推广
  • 移动端适配

联系方式

电话:400-XXX-XXXX

邮箱:info@zskr.cn

地址:北京市朝阳区 XXX 路 XX 号

© 2026 尧图网络科技 版权所有 | 京 ICP 备 XXXXXXXX 号