当前位置: 首页 > news >正文

北京华夏建设有限公司网站邯郸中材建设有限责任公司网站

北京华夏建设有限公司网站,邯郸中材建设有限责任公司网站,电商网站可维护性,北京软件开发公司排行给定一个n个元素有序(升序)的整型数组nums和一个目标值target,写一个函数搜索nums中的target,如果目标值存在返回下标,否则返回-1. //这个题说实话从逻辑上来看实在是太简单了,但是为什么每一次我写起来都感…
  • 给定一个n个元素有序(升序)的整型数组nums和一个目标值target,写一个函数搜索nums中的target,如果目标值存在返回下标,否则返回-1.

    //这个题说实话从逻辑上来看实在是太简单了,但是为什么每一次我写起来都感觉隐隐约约有点问题,为什么呢?就是因为我的问题没有得到解决,我只是一味的去逃避,要真正的系统性的提高,就不能只知道正确答案是怎么写的,还要知道错误答案是怎么错的。
    //现在来理清自己的思路:首先二分查找是需要三个指针的,对应着left,mid,right;然后对于这个有序的数组,我们要做的就是让mid指的数和target比较,然后如果target大,就修改left,target小,就修改right,相等就返回mid。我的问题是什么呢?什么时候返回-1,这个问题是要解决的。
    //理清了思路之后,现在就是把逻辑转化为代码了
    public static int search(int nums[],int target)
    {int left=0,right=num.length()-1;while(left<right){mid=(left+right)/2;//这里为了防止溢出还有优化的可能if(target>nums[mid]){left=mid;}else if{target<nums[mid]right= mid;}else{return mid;}}return -1;
    }

上面是我自认为正确的代码,其实我这个代码是有很多局限的,甚至上,在思路上都是错的,因为从出发点上就错了。作为一个小白,最需要做的就是无条件相信教材上的思路,现在我只需要背诵记忆,等到有一定基础就可以提出自己的想法了,这才是学习的路径。把代码随想录的思想全部背下来,我所有的操作都要和他一模一样。

代码随想录的逻辑(记忆背诵)
  • 二分法易错点

    • while中left是小于还是小于等于right

    • if中nums[mid]>target时,这个right是等于mid还是mid-1

  • 循环不变量

    • 要明确二分法的区间,是左闭右闭还是左闭右开,这个是很重要的,忽略了这个那么所有的东西都会出问题,很少有人定义左开右闭,因此忽略(现在不理解没关系,之后慢慢会理解)

  • 左闭右闭

    left = 0;right=nums.length()-1;
    while(left<=right)
    {//在左闭右闭里面,left和right相等是合法区间,因此要在while里面进行循环查找
    mid=(left+right)/2;
    if(nums[mid]>target){right=mid-1;//因为在左闭右闭的区间里,已经明确了mid所指的不是target,因为right就没有必要等于mid,而是取mid-1
    }else if(nums[mid]<target){left=mid+1;
    }else{return mid;
    }
    }
    return -1
    上述代码并不规范,类似伪代码
    • 左闭右开

      int left = 0,right=nums.length()-1;
      int mid;
      while(left<right)
      {mid=(left+right)/2;//这一步可以优化if(nums[mid]>target){right=mid;}else if(nums[mid]<target){left=mid+1;}else{return mid;}return -1;
      }
      //这一份代码就比较完美,已经彻底理解了二分法,我起码在今天写出这一份代码的时候是彻底理解了二分法,所有的条件我都明白了,未来看到这里希望我还是能够像今天一样彻底理解
http://www.yayakq.cn/news/416748/

相关文章:

  • 环保网站建设的目的邀请注册推广赚钱的app
  • 中小企业网站营销重庆招投标信息网官网
  • 怎么做虚拟网站创建自己的网站能干什么
  • 建站快车帮助中企动力邮箱登陆首页
  • 东明县网站建设5款免费的网站管理系统
  • 青海省住房和建设门户网站广州网页设计师培训班
  • 湖州吴兴建设局网站图片转链接生成器在线
  • 自己搭建的ftp怎么做网站内蒙古建设部网站
  • 智能建站加盟电话注册商标官网入口
  • 莆田市荔城区建设局网站网站建设 化工
  • 可信网站注册wordpress 点击量排序
  • 互联网站安全管理服务平台东阿网站建设公司
  • 企业网站模板下载选哪家wordpress 悬浮插件
  • 怎么模板建站旅游景点推广策划方案
  • 网站建设策划内容网页设计课程培训机构
  • 网站建设武清国外h5网站模板
  • 西安做网站好的公司怎样建置换平台网站
  • php网站制作 青岛网站开发经理
  • 怎么建设淘宝那样的网站郑州城建
  • h5个人网站代码徐州做网站费用
  • 深圳网站建设制作设计做订票网站设计要多久
  • 拥有响应式网站二级学院网站建设整改方案
  • 聊城制作手机网站公司地产股最新消息
  • 婚庆公司网站设计网站策划书模板大全
  • 佛山网站设计制作免费咨询wordpress super 缓存
  • 英文网站优化合肥建公司网站
  • 重庆双福建设开发有限公司网站人力资源做网站的好处
  • 如何设置网站子域名百度做个人简介多少钱
  • 柞水县住房和城乡建设局网站做公司网站的平台
  • 做网站好赚钱吗wordpress适应式网站博客模板