数组算法分享 | 代码随想录(CPP+LeetCode)

总览

    • [704. 二分查找](https://leetcode.cn/problems/binary-search/)
    • [27. 移除元素](https://leetcode.cn/problems/remove-element/)
    • [977. 有序数组的平方](https://leetcode.cn/problems/squares-of-a-sorted-array/)
    • [209. 长度最小的子数组](https://leetcode.cn/problems/minimum-size-subarray-sum/)
    • [59. 螺旋矩阵 II](https://leetcode.cn/problems/spiral-matrix-ii/)
    • C++ Vector 使用指南
      • 一维 Vector(动态数组)
        • 基本概念
        • 常见用法
      • 二维 Vector(矩阵)
        • 1️⃣ 声明和初始化二维 Vector
        • 2️⃣ 访问和修改元素
        • 3️⃣ 遍历二维 Vector

后面有 C++ 中 vector 一维、二维数组的使用说明


704. 二分查找

给定一个n个元素有序的(升序)整型数组nums和一个目标值target,写一个函数搜索nums中的target,如果target存在返回下标,否则返回-1

你必须编写一个具有O(log n)时间复杂度的算法。

classSolution{public:intsearch(vector<int>&nums,inttarget){intleft=0;intright=nums.size()-1;while(left<=right){intmid=left+(right-left)/2;// 防止溢出if(nums[mid]==target){returnmid;// 找到目标,返回索引}elseif(nums[mid]<target){left=mid+1;// 目标在右半部分}else{right=mid-1;// 目标在左半部分}}return-1;// 未找到目标}};

27. 移除元素

给你一个数组nums和一个值val,你需要原地移除所有数值等于val的元素。元素的顺序可能发生改变。然后返回nums中与val不同的元素的数量。

假设nums中不等于val的元素数量为k,要通过此题,您需要执行以下操作:

classSolution{public:intremoveElement(vector<int>&nums,intval){intslow=0;for(intfast=0;fast<nums.size();fast++){if(nums[fast]!=val){nums[slow++]=nums[fast];}}returnslow;}};

977. 有序数组的平方

给你一个按非递减顺序排序的整数数组nums,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。

classSolution{public:vector<int>sortedSquares(vector<int>&nums){intk=nums.size()-1;vector<int>res(k+1);intright=k;intleft=0;while(k!=-1){intleftsquare=nums[left]*nums[left];intrightsquare=nums[right]*nums[right];if(leftsquare>rightsquare){res[k--]=leftsquare;left++;}else{res[k--]=rightsquare;right--;}}returnres;}};

209. 长度最小的子数组

给定一个含有n个正整数的数组和一个正整数target

找出该数组中满足其总和大于等于target的长度最小的子数组[nums[l], nums[l+1], ..., nums[r-1], nums[r]],并返回其长度。如果不存在符合条件的子数组,返回0

classSolution{public:intminSubArrayLen(inttarget,vector<int>&nums){inti=0;intsum=0;intres=nums.size()+1;for(intj=0;j<nums.size();j++){sum+=nums[j];while(sum>=target){intlen=j-i+1;res=(len<res)?len:res;sum-=nums[i];i++;}}if(res==(nums.size()+1))return0;elsereturnres;}};

59. 螺旋矩阵 II

给你一个正整数n,生成一个包含1所有元素,且元素按顺时针顺序螺旋排列的n x n正方形矩阵matrix

classSolution{public:vector<vector<int>>generateMatrix(intn){vector<vector<int>>matrix(n,vector<int>(n,0));inttop=0,bottom=n-1;intleft=0,right=n-1;intnum=1;while(top<=bottom&&left<=right){for(intcol=left;col<=right;col++){matrix[top][col]=num++;}top++;for(introw=top;row<=bottom;row++){matrix[row][right]=num++;}right--;if(top<=bottom){for(intcol=right;col>=left;col--){matrix[bottom][col]=num++;}bottom--;}if(left<=right){for(introw=bottom;row>=top;row--){matrix[row][left]=num++;}left++;}}returnmatrix;}};

C++ Vector 使用指南

一维 Vector(动态数组)

vector<int>是C++标准库中的动态数组容器,用来存储整数。

基本概念
常见用法
#include<vector>usingnamespacestd;// 声明和初始化vector<int>nums={-1,0,3,5,9,12};// 创建并初始化vector<int>arr(5);// 创建大小为5的向量// 访问元素intfirst=nums[0];// 访问第一个元素intsize=nums.size();// 获取大小// 添加元素nums.push_back(15);// 在末尾添加元素// 遍历for(inti=0;i<nums.size();i++){cout<<nums[i]<<" ";}

二维 Vector(矩阵)

1️⃣ 声明和初始化二维 Vector
// 方式1:声明空的二维 vectorvector<vector<int>>matrix;// 方式2:创建 n x n 的二维 vector,所有元素初始化为0vector<vector<int>>matrix(n,vector<int>(n,0));// 方式3:创建 m x n 的矩阵,初始化为特定值vector<vector<int>>matrix(m,vector<int>(n,5));// m行 n列,都是5
2️⃣ 访问和修改元素
vector<vector<int>>matrix(3,vector<int>(3,0));// 访问元素intvalue=matrix[0][1];// 第0行,第1列// 修改元素matrix[0][1]=10;// 动态添加行matrix.push_back(vector<int>{1,2,3});// 在某行添加列matrix[0].push_back(4);
3️⃣ 遍历二维 Vector
// 方式1:使用索引for(inti=0;i<matrix.size();i++){for(intj=0;j<matrix[i].size();j++){cout<<matrix[i][j];}}// 方式2:使用范围for循环for(auto&row:matrix){for(intval:row){cout<<val;}}

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

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

相关文章

【大数据毕设源码分享】django基于协同过滤算法+数据可视化的电影个性化推荐系统的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

cuas ai相关论文 Awesome-Efficient-Agents

yxf203/Awesome-Efficient-Agents: 关于效率引导的 LLM 代理的综述和论文列表&#xff08;记忆、工具学习、规划&#xff09;。 --- yxf203/Awesome-Efficient-Agents: Survey and paper list on efficiency-guided LLM agents (memory, tool learning, planning).

“DeepSeek 时刻” 一周年

这是一个系列文章中的第一篇。在这篇文章中&#xff0c;我们将回顾过去一年中国开源 AI 社区发生的历史性转折&#xff0c;并分析这些变化如何重塑整个全球开源生态系统。许多 2025 年的重要进展&#xff0c;都可以追溯到一个起点&#xff1a;2025 年 1 月的 “DeepSeek 时刻”…

Skills、Commands、Agents、Plugins——这些概念你分得清吗?

困惑 知识星球上&#xff0c;星友「隆中对」提问&#xff1a; 王老师&#xff0c;最近 AI 火爆&#xff0c;学习热情高涨&#xff0c;可能是有些用力过猛 &#xff0c;自己突然有些概念搞不太清楚&#xff1a;-&#xff09; —— Skills, Commands, Agents, Plugins. 这些名词全…

【大数据毕设源码分享】django基于协同过滤算法+数据可视化的经济型酒店推荐系统大数据的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

向量数据库 vs 知识图谱:GraphRAG 的崛起

Knowledge graphs 和 vector databases 常被定位为彼此竞争的技术&#xff0c;但这种框架忽略了问题的本质。 它们是对立的吗&#xff1f;简短回答&#xff1a;不是。 它们解决的是根本不同的问题。事实上&#xff0c;它们最好的状态是协同&#xff0c;而不是对抗。如果你在构…

不用背理论!5 个新手设计技巧,快速提升作品质感

新手做设计&#xff0c;总怕自己没基础做不出好作品——要么版面乱成一团&#xff0c;要么配色丑到辣眼&#xff0c;要么重点根本不突出。其实不用学PS高级功能&#xff0c;不用背配色理论&#xff0c;抓住这5个能直接落地的技巧&#xff0c;几分钟就能做出有质感的作品。 技巧…

数组算法-双指针

首先&#xff0c;双指针法&#xff0c;本质是通过两个索引&#xff08;指针&#xff09; 在数组上移动&#xff0c;用一次遍历&#xff08;O (n) 时间复杂度&#xff09;替代嵌套循环&#xff08;O (n)&#xff09;&#xff0c;核心是用空间换时间&#xff08;仅额外使用两个变…

最新谷歌商店安装教程(保姆级),谷歌三件套问题汇总!闪退,无法登录等各手机解决方案

一定要看清楚&#xff0c;很多大佬最后失败就是没掌握方法。 重要提醒 这里给大家汇总谷歌三件套的版本合集&#xff0c;应该是目前最全面的谷歌三件套版本汇总了。 在安装的时候一定要试一下不同版本的谷歌服务框架&#xff01; 在安装的时候一定要试一下不同版本的谷歌服务…

基于Python + Django物业管理系统(源码+数据库+文档)

物业管理 目录 基于PythonDjango物业管理系统 一、前言 二、系统功能演示 三、技术选型 四、其他项目参考 五、代码参考 六、测试参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 基于PythonDjango物业管理系统 一、前言 博主介绍&#xff1a;✌️大厂码农…

基于Python 个性化餐饮管理系统(源码+数据库+文档)

个性化餐饮管理 目录 基于PythonDjango个性化餐饮管理系统 一、前言 二、系统功能演示 三、技术选型 四、其他项目参考 五、代码参考 六、测试参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 基于PythonDjango个性化餐饮管理系统 一、前言 博主介绍&…

智慧交通数据治理中的典型“四重困境”:**异构性、时效性、关联性、质量性**四大瓶颈,共同导致数据价值难以释放

智慧交通数据治理中的典型“四重困境”&#xff1a;异构性、时效性、关联性、质量性四大瓶颈&#xff0c;共同导致数据价值难以释放。要系统性破局&#xff0c;需构建“一底座、两引擎、三闭环”的新型交通数据智能中枢架构&#xff1a; 一底座&#xff1a;建设统一时空基准的数…

驾校管理|基于springboot + vue驾校管理系统(源码+数据库+文档)

驾校管理 目录 基于springboot vue驾校管理系统 一、前言 二、系统功能演示 三、技术选型 四、其他项目参考 五、代码参考 六、测试参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 基于springboot vue驾校管理系统 一、前言 博主介绍&#xff1a;✌️大…

要落实国家“人工智能+”行动与“数据要素×”三年行动计划并打造数智化发展新高地

要落实国家“人工智能”行动与“数据要素”三年行动计划并打造数智化发展新高地&#xff0c;可从以下方面入手&#xff1a; 在“人工智能”行动方面&#xff0c;首先&#xff0c;结合本地产业特色&#xff0c;推动人工智能与传统产业深度融合。例如在制造业领域&#xff0c;引入…

通过华为账号识别用户风险,降低业务损失

当应用平台组织诸如秒杀、抽奖等营销活动时,经常会遭遇"薅羊毛"行为,给业务方带来不小的经费损失。比如通过虚假手机号进行批量注册,多次参加活动;又比如,当应用商户进行红包补贴、优惠券发放等营销活动…

基于Python 图书管理系统(源码+数据库+文档)

图书管理 目录 基于PythonDjango图书管理系统 一、前言 二、系统功能演示 三、技术选型 四、其他项目参考 五、代码参考 六、测试参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 基于PythonDjango图书管理系统 一、前言 博主介绍&#xff1a;✌️大厂码农…

【大数据毕设全套源码+文档】基于Django+协同过滤算法的电影个性化推荐系统的设计与实现(丰富项目+远程调试+讲解+定制)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

数据作为新型生产要素,正深刻推动各产业数字化转型与智能化升级

数据作为新型生产要素&#xff0c;正深刻推动各产业数字化转型与智能化升级。高质量数据集是实现数据价值释放的关键基础&#xff0c;能够有效支撑人工智能模型训练、算法优化和场景化应用落地。此次面向能源、生物医药、金融、交通、低空、教育等重点领域的首批高质量数据集“…

揭秘气相毛细柱行业十大品牌:生产厂家综合实力排行榜

在精密分析仪器领域,一根直径不足1毫米的毛细柱,却承载着环境监测的生命线、制药安全的守护神、食品安全的第一道防线。2026年,全球气相色谱柱市场正经历国产突围与国际巨头深度博弈的关键期,一份基于市场份额、技…

快速验证:用中文Cursor一小时打造天气APP

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个基于Python的天气查询应用原型&#xff0c;要求&#xff1a;1. 全程使用中文版Cursor 2. 展示AI生成代码过程 3. 包含API调用和UI设计 4. 可一键运行的完整项目。使用Flas…