保研机试前的最后七道数组题

server/2024/9/24 10:47:24/

快慢指针

原地修改数组元素

26. 删除有序数组中的重复项 - 力扣(LeetCode)这里我们选择用两种解法,第一种是用map去重,然后将值依次赋给nums;第二种是用快慢指针的思想

class Solution {
public:int removeDuplicates(vector<int>& nums) {/*第一种:map*/map<int,int> m;int len=nums.size();for(int i=0;i<len;i++){m[nums[i]]=1;}int cnt=0;for(auto i:m){nums[cnt++]=i.first;}return cnt;}
};
class Solution {
public:int removeDuplicates(vector<int>& nums) {/*第二种:快慢指针*/int len=nums.size();int left=0;int right=1;while(right<len){if(nums[left]==nums[right]){right++;}else{left++;nums[left]=nums[right];right++;}}return left+1;}
};

27. 移除元素 - 力扣(LeetCode) 思想与第一题一致,因为限制空间,所以没法用map去重(并且数组无序),请一定要注意双指针思想,因为当数组长度很大时,这个方法就显得尤为重要!

class Solution {
public:int removeElement(vector<int>& nums, int val) {int len=nums.size();int left=0;int right=0;while(right<len){if(nums[right]==val){right++;}else{nums[left]=nums[right];left++;right++;}}return left;}
};

283. 移动零 - 力扣(LeetCode)真的不要太简单~,原地修改数组,请用双指针,当这种思想用到了别的题目时,记得会用哦

class Solution {
public:void moveZeroes(vector<int>& nums) {/*是不是就是原地修改数组类型,双指针!*/int len=nums.size();int left=0;int right=0;while(right<len){if(nums[right]==0){right++;}else{nums[left]=nums[right];left++;right++;}}for(int i=left;i<len;i++){nums[i]=0;}}
};

滑动窗口(过几日回来补)

明天继续更左右指针~

参考:

双指针技巧秒杀七道数组题目 | labuladong 的算法笔记


http://www.ppmy.cn/server/34644.html

相关文章

Git笔记-常用指令

Git笔记-常用指令 一、概述二、仓库管理二、缓存区操作1. 添加文件到缓存区2. 取消缓存文件3. 忽略列表 三、日志状态信息四、分支操作五、六、 一、概述 这里记录一些git常用的指令。 二、仓库管理 # 本地仓库初始化 git init# 克隆仓库 git clone git_url # git clone ht…

B站前端面试官问:用户流量大的时候前端能做些什么

首先&#xff0c;对于用户量暴增导致服务器压力太大甚至有宕机风险&#xff0c;前端同学并非是毫无责任&#xff0c;也并不是什么都做不了。作为一个负责任的前端同学来说&#xff0c;我们有必要先把前端相关的优化做好。如果你回答都是运维同学在处理&#xff0c;没关注过&…

Vitis HLS 学习笔记--MAXI手动控制突发传输

目录 1. 简介 2. MAXI 突发传输详解 2.1 突发传输的前置条件 2.2 hls::burst_maxi 详解 2.2.1 基本知识 2.2.2 hls::burst_maxi 构造函数 2.2.3 hls::burst_maxi 读取方法 2.2.4 hls::burst_maxi 写入方法 2.3 示例一 2.4 示例二 3. 总结 1. 简介 这篇文章探讨了在…

《QT实用小工具·五十四》果冻弹出效果的动画按钮

1、概述 源码放在文章末尾 该项目实现动画按钮&#xff0c;鼠标放在按钮上可以弹性拉出的三个按钮&#xff0c;使用贝塞尔曲线实现&#xff0c;项目demo显示如下所示&#xff1a; 项目部分代码如下所示&#xff1a; #ifndef WATERCIRCLEBUTTON_H #define WATERCIRCLEBUTTON…

nginx--反向代理

反向代理 指的是代理外网用户的请求到内部的指定web服务器器&#xff0c;并将数据返回给用户的一种方式&#xff0c;这是用的比较多的一种方式 模块和功能 ngx_http_proxy_module&#xff1a; 将客户端的请求以http协议转发至指定服务器进行处理。ngx_stream_proxy_module&…

dp 动态规划 力扣

64. 最小路径和 给定一个包含非负整数的 m x n 网格 grid &#xff0c;请找出一条从左上角到右下角的路径&#xff0c;使得路径上的数字总和为最小。 说明&#xff1a;每次只能向下或者向右移动一步。 示例 1&#xff1a; 输入&#xff1a;grid [[1,3,1],[1,5,1],[4,2,1]] 输…

@click=“handleClick()“不会传递默认事件参数

当你使用click"handleClick()"这种形式绑定事件处理器时&#xff0c;Vue会将它视为一个函数调用&#xff0c;而不是一个事件监听器。在这种情况下&#xff0c;Vue不会自动传递原生事件对象作为默认参数。 如果你想让Vue自动传递原生事件对象作为默认参数&#xff0c…

轻松获取商机!淘宝商品关键词搜索电商API接口揭秘

利用科技手段来获得商机已经成为现代商业发展的重要途径之一。在电商领域&#xff0c;淘宝作为中国最大的网购平台之一&#xff0c;通过淘宝商品关键词搜索电商API接口&#xff0c;可以轻松获取商机&#xff0c;开拓市场。联讯数据将揭秘淘宝商品关键词搜索电商API接口&#xf…