704. 二分查找

题目链接:704. 二分查找 - 力扣(LeetCode)

第一天代码跑题了,做出来了但是没有使用二分法,看了讲解,对于左闭右闭和左闭右开还需要多思考,并没有完全理解。那就先总结一下知识点,闭合等于包含,开放等于不包含。

/*我的解法*/
int search(int* nums, int numsSize, int target){int i = 0;for(i = 0; i < numsSize ; i++){/*如果查到了返回下标*/if (nums[i] == target){break;}}/*如果没有查到返回-1*/if (i == numsSize){return -1; }return i;
}

27. 移除元素

题目链接:27. 移除元素 - 力扣(LeetCode)

赶时间,这道题没有做出来,有种知识都还给了老师的感觉。看了讲解的双指针法,真是让人拍案叫绝,太精妙了,必须要记下来,待我回家再想想双重for循环的暴力解法。

先记下知识点:

双指针法(快慢指针法): 通过一个快指针和慢指针在一个for循环下完成两个for循环的工作。

定义快慢指针

  • 快指针:寻找新数组的元素 ,新数组就是不含有目标元素的数组

  • 慢指针:指向更新 新数组下标的位置

我的理解是fast等于old,slow等于new,用新数据覆盖了原有的内存。

/*老师的双指针法*/
intremoveElement(int* nums,int numsSize,int val)
{int slow =0;for(int fast =0; fast < numsSize; fast++){//若快指针位置的元素不等于要删除的元素if(nums[fast]!= val){//将其挪到慢指针指向的位置,慢指针+1nums[slow++]= nums[fast];}}//最后慢指针的大小就是新的数组的大小return slow;
}

更新自己写的暴力解法,两层for循环,一个for循环遍历数组元素 ,第二个for循环更新数组。

/*我的暴力解法*/
int removeElement(int* nums, int numsSize, int val){int i = 0, j = 0,flag = 0;for(i = 0; i < numsSize; i++){if(nums[i] == val){            for(j = i; j < numsSize-1; j++){nums[j] = nums[j+1];}nums[numsSize-1] = 0;flag++;}}return numsSize-flag;
}

代码随想录算法训练营第一天| 704. 二分查找、27. 移除元素。相关推荐

  1. 代码随想录算法训练营第一天|704二分查找 27移除元素

    理论基础 1.数组是存放在连续内存空间上的相同类型数据的集合 2.数组可以方便的通过下标索引的方式获取到下标下对应的数据 3.数组的在内存空间的地址是连续的,所以我们在删除或者增添元素的时候,就难免要 ...

  2. 代码随想录算法训练营第一天 704 二分查找、27 移除元素

    代码随想录算法Day1 | 704. 二分查找.27. 移除元素 Last edited time: April 5, 2023 11:27 AM 数据理论基础 数组是存放在连续内存空间上的相同类型数 ...

  3. 代码随想录算法训练营第一天 | 704.二分查找、27.移除元素题目

    704.二分查找 题目链接:二分查找 思路: 1.从头开始遍历,首先如果不用二分查找法,最容易想到的就是直接暴力查找,时间复杂度为O(n)直接从头开始遍历一便就行.这样如果数据量庞大会运行时间较长. ...

  4. 代码随想录Day01:数组理论基础、二分查找、移除元素

    目录 数组理论基础.二分查找.移除元素 1.数组理论基础 2.Leetcode704.二分查找 方法一 左闭右闭: 方法二 左闭右开: 方法三 左开右开: 方法四 左开右闭: 3.Leetcode27 ...

  5. Leetcode 704.二分查找 27.移除元素 代码随想录day1

    本系列目的在于跟练代码随想录,以及记录自己在数据结构与算法方面的一些学习 704.二分查找 其实之前自己在随便刷题的时候看过这道题目,就是一个纯新手的大状态,第一次听到二分查找这样的东西,然后跟着题解 ...

  6. day1 704.二分查找 27.移除元素

    文章目录 704.二分查找 思路 代码实现 27.移除元素 思路 代码实现 704.二分查找 题目链接:704.二分查找 思路 使用二分法的前提条件: 1.有序数组 2.无重复元素 代码实现 左闭右闭 ...

  7. 代码修炼Day1_LeetCode704二分查找27移除元素

    代码修炼Day1_LeetCode704二分查找&27移除元素 一些数组基本知识 数组下标都是从0开始的 数组内存空间的地址是连续的 题目链接: 力扣704二分查找 二分查找思想 针对升序数组 ...

  8. 代码随想录算法训练营第一天 | 数组理论基础,704. 二分查找,27. 移除元素

    今日学习的文章链接如下: 代码随想录 (programmercarl.com) 代码随想录 (programmercarl.com) 704. 二分查找 自己看到题目的第一想法 拿到题目首先想办法,一 ...

  9. 代码随想录算法训练营第一天

    704. 二分查找. 27. 移除元素 1. 二分查找 int search(int* nums, int numsSize, int target){int middle = 0;int left ...

最新文章

  1. android IntentService生命周期问题
  2. 菜鸟学习Hibernate——简单的一个例子
  3. learning armbian steps(4) ----- armbian 技术内幕
  4. shell中的条件表达式
  5. CSS3 border-image的使用方法
  6. codeforces 808d
  7. 都江堰很美-佩服古人_Crmhf的一天
  8. 硬件:直接拔掉USB移动硬盘会对硬盘造成影响吗?
  9. Android 第三方有用的库收集
  10. 复习 2 个月拿下大厂 Offer,Java 面试指南带你通关跳槽季
  11. 视觉SLAM笔记(55) 位姿图
  12. Linux基本操作和知识
  13. Realtek WiFi SDK 被曝多个漏洞,影响供应链上至少65家厂商近百万台IoT设备
  14. 【angularjs】【学习心得】路由继续研究篇
  15. DAC+DMA+TIM实现音频播放问题记录
  16. Resnet残差网络学习
  17. shadowdocksc错误;端口已被占用
  18. 多个excel工作簿合并_EXCEL多表、多工作簿合并拆分,随心所欲(完善版)
  19. 微信小程序---实现VR看房效果
  20. 关于笔记本电脑插上网线没反应的解决方案

热门文章

  1. 使用 Audacity 录制声卡声音
  2. 《基数排序》基数排序详解
  3. 考研人的快乐瞬间,今天你快乐了吗?
  4. 争当表率 争做示范 | 华云数据荣获第十三届无锡市专利奖优秀奖!
  5. Flume 监控之 Ganglia 的安装与部署
  6. BOM-物料清单(Bill of Material)
  7. JS代码实现击鼓传花【队列】
  8. 双核心校园网规划与设计
  9. 计算机三级缺考停一年,2020四级缺考会不会被禁考一年
  10. 喜讯 | 金仓KingbaseES V8获选“中国软件行业协会2022年优秀软件产品”