当前位置:网站首页>快慢指针系列
快慢指针系列
2022-06-24 07:07:00 【厚积薄发ض】
双指针法
- 使用快慢指针
- 快指针负责找到我们这个新数组的元素(也就是非val的元素)
- 慢指针负责维护这个新数组
class Solution {
public int removeElement(int[] nums, int val) {
int fast = 0;//快指针负责找到我们这个新数组的元素(也就是非val的元素)
int slow = 0;//慢指针负责维护这个新数组
for(fast =0;fast<nums.length;++fast){
if(nums[fast]!=val){//如果发现快指针指向的值不为val,那就需要将这个值赋值给待更新的位置,赋值以后slow向后走继续指向待更新位置来维护新数组
nums[slow++] = nums[fast];
}
}
return slow;
}
}暴力求解:
- 使用两个for循环进行遍历,外循环遍历数组每个元素,内层循环用来挪动元素(进行覆盖)
- 如发现数组元素为val那就需要内层循环来挪动元素
class Solution {
public int removeElement(int[] nums, int val) {
int length = nums.length;
for(int i=0;i<length;++i){
if(nums[i]==val){
for(int j =i+1;j<length;++j){
nums[j-1]= nums[j];
}
i--;
length--;
}
}
return length;
}
}- 使用快慢指针
- fast用来找新数组的元素,也就是不与前面重复的元素
- slow用来维护新的数组
class Solution {
public int removeDuplicates(int[] nums) {
//使用快慢指针
//还是fast用来找新数组的元素,也就是不与前面重复的元素
//slow用来维护新的数组
int fast =0;
int slow =0;
for(fast =1;fast<nums.length;++fast){
int tmp = nums[fast-1];//记录fast前面的元素
if(nums[fast]!=tmp){
//与记录的元素不相同,证明需要加入slow维护的新数组中
nums[++slow] = nums[fast];
}
}
return slow+1;
}
}- 使用快慢指针
- fast用来找新数组的元素,也就是不与前面重复的元素
- slow用来维护新的数组
- 最后slow前面为我们维护好的新数组,后面就全部置0
class Solution {
public void moveZeroes(int[] nums) {
int fast =0;
int slow =0;
for(fast =0;fast<nums.length;++fast){
if(nums[fast]!=0){
nums[slow++] = nums[fast];
}
}
for(int i = slow;i<nums.length;++i){
nums[i] = 0;
}
}
}边栏推荐
- Using ngrok for intranet penetration
- 数据中台:国内大厂中台建设架构集锦
- Several schemes of PHP code encryption
- String转Base64
- opencv最大值滤波(不局限于图像)
- Detailed explanation of Base64 coding and its variants (to solve the problem that the plus sign changes into a space in the URL)
- 解析互联网广告术语 CPM、CPC、CPA、CPS、CPL、CPR 是什么意思
- 项目部署相关
- 微博撰写-流程图-序列图-甘特图-mermaid流程图-效果不错
- win11在cmder中使用vim查看内容的时候空白
猜你喜欢
随机推荐
分布式 | 如何与 DBLE 进行“秘密通话”
lombok 使用
【力扣10天SQL入门】Day2
Shell array
K8s deployment of highly available PostgreSQL Cluster -- the road to building a dream
leetcode 1642. Furthest Building You Can Reach(能到达的最远的建筑)
Distributed | how to make "secret calls" with dble
Ordering of MySQL composite index
xtrabackup做数据备份
关于ETL看这篇文章就够了,三分钟让你明白什么是ETL
解析互联网广告术语 CPM、CPC、CPA、CPS、CPL、CPR 是什么意思
工具类
Numpy 中的方法汇总
Use cpulimit to free up your CPU
MySQL 因字符集问题插入中文数据时提示代码 :1366
Xiaohei ai4code code baseline nibble 1
相机投影矩阵计算
【NOI模拟赛】寄(树形DP)
为什么ping不通,而traceroute却可以通
xargs使用技巧 —— 筑梦之路








