代码随想录算法训练营第一天| 704. 二分查找、27. 移除元素。
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. 移除元素。相关推荐
- 代码随想录算法训练营第一天|704二分查找 27移除元素
理论基础 1.数组是存放在连续内存空间上的相同类型数据的集合 2.数组可以方便的通过下标索引的方式获取到下标下对应的数据 3.数组的在内存空间的地址是连续的,所以我们在删除或者增添元素的时候,就难免要 ...
- 代码随想录算法训练营第一天 704 二分查找、27 移除元素
代码随想录算法Day1 | 704. 二分查找.27. 移除元素 Last edited time: April 5, 2023 11:27 AM 数据理论基础 数组是存放在连续内存空间上的相同类型数 ...
- 代码随想录算法训练营第一天 | 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 ...
最新文章
- android IntentService生命周期问题
- 菜鸟学习Hibernate——简单的一个例子
- learning armbian steps(4) ----- armbian 技术内幕
- shell中的条件表达式
- CSS3 border-image的使用方法
- codeforces 808d
- 都江堰很美-佩服古人_Crmhf的一天
- 硬件:直接拔掉USB移动硬盘会对硬盘造成影响吗?
- Android 第三方有用的库收集
- 复习 2 个月拿下大厂 Offer,Java 面试指南带你通关跳槽季
- 视觉SLAM笔记(55) 位姿图
- Linux基本操作和知识
- Realtek WiFi SDK 被曝多个漏洞,影响供应链上至少65家厂商近百万台IoT设备
- 【angularjs】【学习心得】路由继续研究篇
- DAC+DMA+TIM实现音频播放问题记录
- Resnet残差网络学习
- shadowdocksc错误;端口已被占用
- 多个excel工作簿合并_EXCEL多表、多工作簿合并拆分,随心所欲(完善版)
- 微信小程序---实现VR看房效果
- 关于笔记本电脑插上网线没反应的解决方案