首页 > 其他分享 >day1 二分查找

day1 二分查找

时间:2022-09-21 22:12:23浏览次数:89  
标签:二分 slow nums int fast day1 查找

二分查找

要在二分查找的过程中,保持不变量,就是在while寻找中每一次边界的处理都要坚持根据区间的定义来操作,这就是循环不变量规则。

例题

704. 二分查找

思路:单纯的二分查找
这里使用左闭右闭区间。

int search(vector<int>& nums, int target) {
	int l = 0, r = nums.size()-1;
	while(l<=r){
	int mid = (l+r)/2;
	if(nums[mid]>target) r = mid-1;
	else if(nums[mid]<target) l = mid+1;
	else return mid;
	}
	return -1;
}

27. 移除元素

思路:快慢指针
如果 fast 遇到需要去除的元素,则直接跳过,否则就告诉 slow 指针,并让 slow 前进一步。

int removeElement(vector<int>& nums, int val) {
        int slow = 0, fast = 0;
        while(fast<nums.size()){
            if(nums[fast]!=val){
                nums[slow] = nums[fast];
                slow++;
            }
            fast++;
        }
        return slow;
    }

标签:二分,slow,nums,int,fast,day1,查找
From: https://www.cnblogs.com/gatzzzze/p/16717315.html

相关文章

  • day1 python学习前言
    ......
  • 代码随想录算法训练营第一天| 704. 二分查找、27. 移除元素
    2022/09/21第一天数组第一题第二题思路:交换数值为val的元素与最后一个元素的位置,并减少数组的长度......
  • 初入程序员的世界day1--内容总结
    一:程序员笔记(文档记录)软件--typora(markdown文本编辑器)软件的下载与安装​目前非常火爆的文本编辑器,可以很方便的添加重点标记框比如```python就可以框出一个醒目......
  • 代码随想录刷题第一天|704二分查找、27移除元素
    704、二分查找leetcode链接:https://leetcode.cn/problems/binary-search/思路一暴力解法-遍历整个数组(切片),如果当前遍历元素和目标值一致,返回当前元素下标即可。代码......
  • Day1
    今日内容总结Typora介绍是一款功能强大的文本编辑器主要功能格式转换字体大小主题样式去官网下载喜欢的主题下载对应的压缩包拷贝css文件到主题默认文件夹下......
  • 数据结构算法(一)之二分查找
    internalclassProgram{staticvoidMain(string[]args){varn=50;varrandom=newRandom();while......
  • STL string的查找,比较,截取子串
    compare函数在>时返回1,<时返回-1,==时返回0。比较区分大小写,比较时参考字典顺序,排越前面的越小。大写的A比小写的a小。intcompare(conststring&s)const;//与字符串s......
  • Linux目录操作cp、mv与rmLinux查找文件(find、which)
    cp(复制)cp(copy)备份cp[选项]…源文件目标相当改名复制文件夹文件相当于改名字另存为cp[选项]...源文件...文件夹多个源文件只能复制到文件夹 选项: ......
  • 查找
    查找分为内查找和外查找。顺序表查找:线性表的顺序存储结构主要使用两种方法:顺序查找和二分查找。1)顺序查找:从表的一端开始,顺序扫描线性表,依次把扫描的记录和关键字比......
  • day1
    这是我的第一篇博客测试一下字体大小字体大小字体大小字体大小publicvoidinsert(Tt){if(isempty()){NodenewNode=newNode(head,nu......