代码随想录算法训练营第一天|704二分查找 27移除元素
理论基础
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移除元素相关推荐
- 代码随想录算法训练营第一天 704 二分查找、27 移除元素
代码随想录算法Day1 | 704. 二分查找.27. 移除元素 Last edited time: April 5, 2023 11:27 AM 数据理论基础 数组是存放在连续内存空间上的相同类型数 ...
- 代码随想录算法训练营第一天| 704. 二分查找、27. 移除元素。
704. 二分查找 题目链接:704. 二分查找 - 力扣(LeetCode) 第一天代码跑题了,做出来了但是没有使用二分法,看了讲解,对于左闭右闭和左闭右开还需要多思考,并没有完全理解.那就先总结一 ...
- 代码随想录算法训练营第一天 | 704.二分查找、27.移除元素题目
704.二分查找 题目链接:二分查找 思路: 1.从头开始遍历,首先如果不用二分查找法,最容易想到的就是直接暴力查找,时间复杂度为O(n)直接从头开始遍历一便就行.这样如果数据量庞大会运行时间较长. ...
- 代码随想录Day01:数组理论基础、二分查找、移除元素
目录 数组理论基础.二分查找.移除元素 1.数组理论基础 2.Leetcode704.二分查找 方法一 左闭右闭: 方法二 左闭右开: 方法三 左开右开: 方法四 左开右闭: 3.Leetcode27 ...
- Leetcode 704.二分查找 27.移除元素 代码随想录day1
本系列目的在于跟练代码随想录,以及记录自己在数据结构与算法方面的一些学习 704.二分查找 其实之前自己在随便刷题的时候看过这道题目,就是一个纯新手的大状态,第一次听到二分查找这样的东西,然后跟着题解 ...
- day1 704.二分查找 27.移除元素
文章目录 704.二分查找 思路 代码实现 27.移除元素 思路 代码实现 704.二分查找 题目链接:704.二分查找 思路 使用二分法的前提条件: 1.有序数组 2.无重复元素 代码实现 左闭右闭 ...
- 代码修炼Day1_LeetCode704二分查找27移除元素
代码修炼Day1_LeetCode704二分查找&27移除元素 一些数组基本知识 数组下标都是从0开始的 数组内存空间的地址是连续的 题目链接: 力扣704二分查找 二分查找思想 针对升序数组 ...
- 代码随想录算法训练营第一天 | 数组理论基础,704. 二分查找,27. 移除元素
今日学习的文章链接如下: 代码随想录 (programmercarl.com) 代码随想录 (programmercarl.com) 704. 二分查找 自己看到题目的第一想法 拿到题目首先想办法,一 ...
- 代码随想录算法训练营第一天
704. 二分查找. 27. 移除元素 1. 二分查找 int search(int* nums, int numsSize, int target){int middle = 0;int left ...
最新文章
- 利用OpenCV进行边缘检测
- java cache缓存_涨姿势:为什么Java中“1000==1000”为false,而”100==100“为true?
- HANDLE:句柄的概念
- android获取年月日时分秒毫秒,Android获取两个日期其间间隔的天数
- mqtt+uniapp 发布/订阅实例
- Latex 的基本语法
- 2021-2027全球与中国铂金芯片温度传感器市场现状及未来发展趋势
- 查询ES(ElasticSearch)版本
- 计算机操作系统-4-设备管理
- java里arcsin_java编程用泰勒级数计算arcsin
- android+imei+为null,适合Android7.0以上(到9.0)系统,获取 关于手机--状态信息 (如:MAC,IMEI,IMSI,ICCID)...
- ipa反编译修改icon,简洁教程
- 机器视觉系列(一)——概述
- Android接入支付宝开发
- 香叶是什么,怎么用?
- awk 匹配_详解Linux三剑客之awk
- 2021-09-23 什么是图灵测试
- 古代玻璃制品的化学成分分析与鉴别
- 一只蝴蝶挥了挥翅膀,于是有了AI读心术
- 老李聊股:中油工程(第二篇)
热门文章
- 扫描器可发现远程服务器,服务器扫描发现漏洞-可通过HTTP获取远端WWW服务信息...
- AutoJs学习-关于各种头条阅读自动赚金币的思路-实践中
- Android APK打包流程
- 扩展欧几里得的几个定理以及证明
- Vue.js 3 ssr 中报错Hydration node mismatch: - Client vnode: div - Server rendered DOM:已解决
- windows系统锁定计算机组合键,WIN键间断性触发在锁定状态!!
- Linux中正则表达式详细命令及代码(附实验笔记)
- 大计基编程题(第十二周)
- jsp中四个作用域的区别
- 文档在线化管理系统Confluce使用