当前位置: 首页 > news >正文

专题:数组(已完结)

1.二分查找
有两种写法
第一种:左闭右闭
第二种:左闭右开
两种方法注意初始化 right的不同 以及更新right的不同

第一种:

class Solution {
public:int search(vector<int>& nums, int target) {int left = 0;int right = nums.size()-1;while(left<=right){int mid = (left+right)/2;if(target>nums[mid]){left=mid+1;}else  if(target<nums[mid]){right=mid-1;;}else{return mid;}}return -1;}
};

第二种:

class Solution {
public:int search(vector<int>& nums, int target) {int left = 0;int right = nums.size();while(left<right){int mid = (left+right)/2;if(target>nums[mid]){left=mid+1;}else  if(target<nums[mid]){right=mid;;}else{return mid;}}return -1;}
};

2.移除元素

这里用快慢指针
slowindex 指向将要填的位置

class Solution {
public:int removeElement(vector<int>& nums, int val) {int slowindex =0;int fastindex =0;for(int fastindex =0;fastindex<nums.size();fastindex++){if(nums[fastindex]!=val){nums[slowindex] = nums[fastindex];slowindex++;}}return slowindex;}
};

3.有序数组的平方
用双指针 i,j i指向头 j指向尾 平方后比较大小 大的直接放到新的数组中 新数组从尾部开始放

        int i=0;int j=nums.size()-1;

完整代码

class Solution {
public:vector<int> sortedSquares(vector<int>& nums) {int i=0;int j=nums.size()-1;int k =nums.size()-1;vector<int> result(nums.size(),0);while(i<=j){if(pow(nums[i],2) >pow(nums[j],2) ){result[k] = nums[i]*nums[i];k--;i++;}else{result[k] = nums[j]*nums[j];k--;j--; }}return result;}
};

4.长度最小的子数组
需要
使用双指针法 j指针遍历数组nums[i] j管理右边界 每次遍历都加一,low管理左边界 左边界需要判断sum是否符合条件 因此左边界可能不止加一。

class Solution {
public:int minSubArrayLen(int target, vector<int>& nums) {int i=0;int sum = 0;int minlen =INT_MAX;for(int j=0;j<nums.size();j++){sum=sum+nums[j];while(sum>=target){minlen=min(minlen,j-i+1);sum=sum-nums[i];i++;}}return minlen==INT_MAX? 0:minlen;}
};

5.螺旋矩阵II


http://www.mrgr.cn/news/51255.html

相关文章:

  • 2024全国大数据与计算智能挑战赛火热报名中!
  • 【优选算法】(第四十四篇)
  • 数据结构之红黑树的实现
  • 1 -《本地部署开源大模型》如何选择合适的硬件配置
  • AI全栈大模型项目实战,人工智能,多模态大模型,微调技术训练营,大模型多场景实战
  • 算力基础篇:从零开始了解算力
  • 张驰咨询:假如国人都成为六西格玛黑带,中国将会怎样?
  • C++之《剑指offer》学习记录(4):赋值运算符函数
  • 视频分割软件哪个好?无损分割视频片段就靠它
  • 某电子元器件企业人力资源管理体系搭建咨询项目
  • 【观点】机器学习与神经网络荣膺诺贝尔物理学奖的启示:科技的未来与物理学的转变
  • 【你也能从零基础学会网站开发】SQL Server 2000中的bit数据类型
  • leetcode.3194.最小元素和最大元素的最小平均值
  • huggingface的数据集下载(linux下clone)
  • DSOL源码基本函数列表
  • 毕业32年,重回32中
  • 电流检测布局和故障排除指南
  • 【JavaEE】——TCP应答报文机制,超时重传机制
  • Find My门禁卡|苹果Find My技术与门禁卡结合,智能防丢,全球定位
  • 【Python爬虫实战】高效解析和操作XML/HTML的实用指南