首页 > 编程语言 >算法day1数组|力扣704二分查找,27移除元素

算法day1数组|力扣704二分查找,27移除元素

时间:2023-11-09 22:24:07浏览次数:48  
标签:27 val nums 704 int vector 数组 移除 size

数组基础理论
数组是存放在连续内存空间上的相同类型数据的集合。
可以通过下标轻松获取数据,但是增删元素的时候需要移动其他元素
Vector和array的区别 vector的底层实现是array,但是vector是容器不是数组
数组的元素不能删除,只能覆盖
image
小技巧:取中间 int mid =l+r>>1;//有时候怕溢出,写成 l+((r-l)>>1)
左闭右闭 l=0; r=nums.size()-1; while(l<=r)l=mid+1;r=mid-1;
左闭右开 l=0; r=nums.size(); while(r>l) l=mid+1; r=mid;

image
暴力法:

点击查看代码
class Solution {
public:
    int removeElement(vector<int>& nums, int val) {
        int size = nums.size();
        for (int i = 0; i < size; i++) {
            if (nums[i] == val) { // 发现需要移除的元素,就将数组集体向前移动一位
                for (int j = i + 1; j < size; j++) {
                    nums[j - 1] = nums[j];
                }
                i--; // 因为下标i以后的数值都向前移动了一位,所以i也向前移动一位
                size--; // 此时数组的大小-1
            }
        }
        return size;

    }
};
快慢指针: 慢只针所指的位置用来放不是val的数,val被后面的数覆盖
点击查看代码
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;


    }
};

标签:27,val,nums,704,int,vector,数组,移除,size
From: https://www.cnblogs.com/hkx0121/p/17823016.html

相关文章

  • centos7.9安装kubernetes1.27.4版本
    ./etc/os-releasecolor(){RES_COL=60MOVE_TO_COL="echo-en\\033[${RES_COL}G"SETCOLOR_SUCCESS="echo-en\\033[1;32m"SETCOLOR_FAILURE="echo-en\\033[1;31m"SETCOLOR_WARNING="echo-en\\0......
  • 牛客[编程题] HJ27 查找兄弟单词
    HJ27 查找兄弟单词  描述定义一个单词的“兄弟单词”为:交换该单词字母顺序(注:可以交换任意次),而不添加、删除、修改原有的字母就能生成的单词。兄弟单词要求和原来的单词不同。例如:ab和ba是兄弟单词。ab和ab则不是兄弟单词。现在给定你n个单词,另外再......
  • 表碎片整理时shrink和move如何选择 --高水位回收 转:http://blog.itpub.net/29821
    整理表碎片通常的方法是move表,当然move是不能在线进行的,而且move后相应的索引也会失效,oracle针对上述不足,在10g时加入了shrink,那这个方法能不能在生产中使用呢?     shrink的一个优点是能在线进行,不影响表上的DML操作,当然,并发的DML操作在shrink结束的时刻会出现短暂的block;s......
  • 如何移除某个conda环境
    要移除conda中的某个环境,您可以使用以下命令: conda env remove --name <环境名称>  其中,<环境名称>是您要移除的环境的名称。请确保在运行此命令之前,您已经退出该环境。例如,如果要移除名为myenv的环境,可以运行以下命令: conda env remove --......
  • laravel:目录结构(10.27.0)
    一,相关文档:https://learnku.com/docs/laravel/10.x/structure/14837#c2b9f4二,app目录1,如图:2,各目录的用途:console:所有自定义的控制台命令Exceptions:异常处理器Http/Controllers:控制器  目录下的Controller.php是其他业务功能controller的基类Http/Mid......
  • laravel:自动加载自定义类(10.27.0)
    一,配置1,在laravel项目的根目录下添加extend目录,如图:2,编辑composer.json,在autoload增加一行:"":"extend/",如图:生成自动加载文件:liuhongdi@lhdpc:/data/laravel/dignews$composerdump-autoload-oGeneratingoptimizedautoloadfiles...命令的解释:将PSR-......
  • 每日总结27
    软件设计                 石家庄铁道大学信息学院 实验8:适配器模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解适配器模式的动机,掌握该模式的结构;2、能够利用适配器模式解决实际问题。 [实验任务一]:双向适配器实现一个双向适配器......
  • 11月27日DMP大湾区工博会开幕倒计时,台湾高技在深圳等您莅临!
    展会名称:DMP大湾区(深圳)工业博览会(简称:DMP大湾区工博会)展会日期:11月27-30日展会地址:深圳国际会展中心(宝安)展位号:8号馆8C35台湾高技将展示智能制造较新技术及全套解决方案。2023年11月27-30日DMP大湾区工业博览会(简称:DMP大湾区工博会),在深圳国际会展中心(深圳宝安)隆重启幕!展会规......
  • 278. 第一个错误的版本
    目录题目题解:二分查找题目你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。假设你有n个版本[1,2,...,n],你想找出导致之后所有版本出错的第一......
  • AtCoder Beginner Contest 327 (ABC327)
    A.ab直接根据题意模拟即可。CodeB.A^A直接枚举\(i=1,2,\dots,15\),每次看看\(i^i\)是否等于\(A\)即可。CodeC.NumberPlaceDescription给你一个\(9\times9\)的矩阵\(A\),判断是否合法,满足以下三个条件,即为合法。对于每一行,包含数字\(1\sim9\);对于......