理论基础

1、数组是存放在连续内存空间上的相同类型数据的集合

2、数组可以方便的通过下标索引的方式获取到下标下对应的数据

3、数组的在内存空间的地址是连续的,所以我们在删除或者增添元素的时候,就难免要移动其他元素的地址

1-704二分查找

 1.2第一想法

采用二分法,之前学到过,要考虑区间的左右封闭

1.3代码实现

class Solution {
public:int search(vector<int>& nums, int target) {//左闭右开int left=0;int right = nums.size();while(left < right){int middle = left + ((right - left)/2);if(nums[middle]>target){right = middle ;}else if(nums[middle]<target){left = middle +1;}else return middle;}return -1;}
};

思路:

当中间值>目标值时,替换右边的right(middle):因为右边是开区间,不用middle;

当中间值<目标值时,替换左边的right(middle+1)

感想

后续可以考虑使用左闭右闭式,

此时当中间值>目标值时,替换右边的right(middle-1);

当中间值<目标值时,替换左边的right(middle+1)

2-27移除元素

 2.2第一想法

采用暴力解法,但并不是最简方法;

看了视频讲解后—— 引入双指针,快:寻找新数组元素; 慢:更新数组下标

数组的元素在内存地址中是连续的,不能单独删除数组中的某个元素,只能覆盖

2.3代码实现

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

感想

根据本题目引出了双指针的方法,再后续的题目中也能看到此方法的妙用。

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

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

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

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

    704. 二分查找 题目链接:704. 二分查找 - 力扣(LeetCode) 第一天代码跑题了,做出来了但是没有使用二分法,看了讲解,对于左闭右闭和左闭右开还需要多思考,并没有完全理解.那就先总结一 ...

  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. 利用OpenCV进行边缘检测
  2. java cache缓存_涨姿势:为什么Java中“1000==1000”为false,而”100==100“为true?
  3. HANDLE:句柄的概念
  4. android获取年月日时分秒毫秒,Android获取两个日期其间间隔的天数
  5. mqtt+uniapp 发布/订阅实例
  6. Latex 的基本语法
  7. 2021-2027全球与中国铂金芯片温度传感器市场现状及未来发展趋势
  8. 查询ES(ElasticSearch)版本
  9. 计算机操作系统-4-设备管理
  10. java里arcsin_java编程用泰勒级数计算arcsin
  11. android+imei+为null,适合Android7.0以上(到9.0)系统,获取 关于手机--状态信息 (如:MAC,IMEI,IMSI,ICCID)...
  12. ipa反编译修改icon,简洁教程
  13. 机器视觉系列(一)——概述
  14. Android接入支付宝开发
  15. 香叶是什么,怎么用?
  16. awk 匹配_详解Linux三剑客之awk
  17. 2021-09-23 什么是图灵测试
  18. 古代玻璃制品的化学成分分析与鉴别
  19. 一只蝴蝶挥了挥翅膀,于是有了AI读心术
  20. 老李聊股:中油工程(第二篇)

热门文章

  1. 扫描器可发现远程服务器,服务器扫描发现漏洞-可通过HTTP获取远端WWW服务信息...
  2. AutoJs学习-关于各种头条阅读自动赚金币的思路-实践中
  3. Android APK打包流程
  4. 扩展欧几里得的几个定理以及证明
  5. Vue.js 3 ssr 中报错Hydration node mismatch: - Client vnode: div - Server rendered DOM:已解决
  6. windows系统锁定计算机组合键,WIN键间断性触发在锁定状态!!
  7. Linux中正则表达式详细命令及代码(附实验笔记)
  8. 大计基编程题(第十二周)
  9. jsp中四个作用域的区别
  10. 文档在线化管理系统Confluce使用