算法训练第一天704.二分查找、27.移除元素。-创新互联

今天的代码展示在末尾

成都创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:做网站、成都网站设计、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的临颍网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

​​​​​​​​​​​​​​​​​​​​​​​​​​​704. 二分查找 - 力扣(LeetCode)

第一题的想法不多,我最开始利用的是左闭右闭,退出条件想了好久,后来看讲解,学会了左闭右闭、左闭右开,了解了许多细节。

如下:左闭右开比左闭右闭时间复杂度低、在mid运算时,要利用left+(right-left)/2代替(left+right)/2。这是为了防止及数据溢出,例如边界值的运算,还有/2可以改称为运算>>1,这个更快速。自己最开始更新left,或right时会考虑不到mid。

27. 移除元素 - 力扣(LeetCode)

这是第二题,我利用vector自带的erase函数,和remove函数解的,不明所以,这是错误的,应该将最关键的部分,核心部分来手动实现原理,这样理解才能加深。

数组的空间是连续的,只能覆盖不能删除,vector是对数组进行了包装。

int search(vector& nums, int target)
{
	//左闭右闭、左闭右开、【a、b】【a、b)这决定了每次更新后的值。
	//【】a<=b【 )a>1);//>>得加(),左右移是优先级最低的 
		if(nums[mid]>target)//中值大,往左找 
		{
			right=mid-1; 
		}
		else if(nums[mid]>1);
//		if(nums[mid]>target)//中值大,往左找 
//		{
//			right=mid; 
//		}
//		else if(nums[mid]& nums, int val) 
{
	//我的库函数解法 
    nums.erase(remove(nums.begin(),nums.end(),val),nums.end());//erase复杂度n 
    return nums.size();
    //快慢指针的原理就是遍历,快慢一起走,遇到目标值,快指针移动,慢指针停,快指针就将指向的值赋给慢指针 ,实现覆盖 
    int slow=0;
	int fast;
	for(fast=0;fast

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


分享名称:算法训练第一天704.二分查找、27.移除元素。-创新互联
转载源于:http://scyanting.com/article/ddpoip.html