首页 > 其他分享 >移除元素总结

移除元素总结

时间:2024-06-13 16:00:41浏览次数:24  
标签:总结 slow int 元素 fast public 移除 class 指针

27. Remove Element

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

26. Remove Duplicates from Sorted A

class Solution {
public:
    int removeDuplicates(vector<int>& nums) {
        int slow=1;
        for(int fast=1;fast<nums.size();fast++){
            if(nums[fast]!=nums[fast-1]){
                nums[slow++]=nums[fast];
            }
        }
        return slow;
    }
};

283. Move Zeroes

class Solution {
public:
    void moveZeroes(vector<int>& nums) {
        int slow=0;
        for(int fast=0;fast<nums.size();fast++){
            if(nums[fast]){
                swap(nums[slow++],nums[fast]);
            }
        }
    }
};

可以看到,这个板块的题目原理是不难的,主要注意以下几点:

1.快慢指针的作用

        (1)快指针指向新数组的元素的值(事实上并没有创建新的数组)

        (2)慢指针指向新数组的下标。

        (3)可能会在此基础上进行一些延伸,比如283题移动零,在这里,当fast的值不为零的时候,快慢指针总是指向同一个元素。一旦遇到零,快指针就会比慢指针走得快。

2.快慢指针的初始值

像力扣26题,slow的初始值设为1,因为数组的第一个元素肯定不是重复元素。

标签:总结,slow,int,元素,fast,public,移除,class,指针
From: https://blog.csdn.net/2301_80161204/article/details/139656480

相关文章

  • 6.15 实验总结
    实验总结实验一:黄金分割法(0.618法)程序设计通过黄金分割法的实践,我深刻体会到了数学理论与实际问题结合的魅力。从编写代码实现0.618搜索法到观察算法逐步逼近最优解的过程,我不仅掌握了这种经典优化算法的精髓,还提升了编程技巧,包括函数定义、循环与条件判断等基本技能。实验中,我......
  • 事后诸葛亮会议总结
    一、设想与目标我们的软件要解决什么问题,是否定义的很清楚?我们是OJ项目问题页面优化,我们要解决目前页面的布局不合理问题需要完善页面的布局构造。是否有充足的时间来做计划?有充足的时间来做计划团队在计划阶段是如何解决同事们对于计划的不同意见的?把每个人的意见都说出来......
  • 6.13 个人总结
    在这个学期的学习旅程中,我作为软件工程专业的学生,经历了从理论到实践的全方位锻炼,不仅在专业技能上取得了显著进步,也在团队协作、项目管理和自我认知方面获得了宝贵的经验。以下是对我本学期学习经历的全面总结,包括对上述问题的深入思考。 1.课程计划完成程度回顾我的第一周课......
  • C++基础知识总结
    一.c++的初始化intmian(){inta=10;intb(10);//用()来初始化intc{10};//用{}来初始化,较统一标准return0;}二.c++语言输入与输出#include<iostream>//输入输出流usingnamespacestd;intmain(){inta{0};charch{'0'};cin>>a>>ch;//提取符cout<<&......
  • 关于RTthread使用PWM的总结经验(基于STM32F4系列)
    目录硬件资源介绍:前期准备:代码编写:总结:硬件资源介绍:笔者使用的是STM32F407VET6是魔女开发板,因为RT不支持CMSIS-DAP烧录,所以我又准备了一个ST-link,一个红色的LED。我所使用的是TIM2-CH3通道,在我这个板子上对应的是PA2口。原理图如下所示。可以看到PA2上对应的有TIM2_......
  • Beta版会议总结
    会议记录-2024.6.12会议主题:快易递友APP开发问题讨论与会人员:陈庆振,王泽杨,邓睿智讨论的问题:·修改好友聊天交流功能我们需要精心设计并实现一个好友聊天功能,不仅要确保消息的实时传输和接收,还要将消息加密和安全性作为核心考量因素,为用户提供一个安全、流畅的聊天......
  • Beta版会议总结(事后诸葛亮模板)
    **1.*以“事后诸葛亮”为模板总结会议header1、我们的软件要解决什么问题?是否定义的很清楚?是否对典型用户和典型场景有清晰的描述?主要是要方便老师学生的生活,少跑一趟取快递时间可用做其他事情,而取快递的人可以通过拿一次快递,挣一顿饭钱,方便自己方便他人;......
  • 计算机网络之网络层知识总结
    网络层功能概述主要任务主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务。网络层传输单位是数据报。分组和数据报的关系:把数据报进行切割之后,就是分组。主要功能:路由选择与分组转发路由器主要完成两个功能:是路由选择(确定哪一条路径),二是分组......
  • 通过元学习优化增益模型的性能:基础到高级应用总结
    在当今数据驱动的决策过程中,因果推断和增益模型扮演了至关重要的角色。因果推断帮助我们理解不同变量间的因果关系,而增益模型则专注于评估干预措施对个体的影响,从而优化策略和行动。然而,要提高这些模型的精确度和适应性,引入元学习器成为了一个创新的解决方案。元学习器通过将估计......
  • C/C++ 使用宏时应注意的问题总结
    使用C/C++宏时,为了确保代码的正确性、可读性和可维护性,现总结一些注意事项和最佳实践:1.定义常量使用#define定义常量时,要注意其类型不安全性。虽然它使用方便快捷,但缺乏类型检查可能导致问题。如果需要类型安全的常量,可以考虑使用const或constexpr。2.多重包含防范当宏......