首页 > 其他分享 >Day1| 704. 二分查找 &27. 移除元素

Day1| 704. 二分查找 &27. 移除元素

时间:2024-07-03 22:52:47浏览次数:19  
标签:27 target nums 704 mid int 移除 left 指针

704.二分查找

题目链接 : https://leetcode.cn/problems/binary-search/description/

思路:切记二分查找要基于排序好的数组或者数据,否则二分查找必不能使用!!!!!!!!!

双指针写最简单,一个头指针从0开始,一个尾指针从数组长度-1开始,中间指针是头+尾/2,每次比较头尾中间指针的值是否是target,如果是就返回中间值的下标(也就是中间指针),如果中间值小于target就把头指针移到中间指针右边;如果中间值大于target就把尾指针移到中间指针左边.如果头指针大于尾指针那么跳出循环.

之后如果像这样简单题的思路我就不会写出来了,太浪费时间了....

这题里面这句话值得一品

int mid = left + (right - left) >> 1;

这里用了位运算

顺便贴一张运算符优先级的图

代码如下:

点击查看代码
@Test
    public void test1(){
        int[] nums = {-1,0,3,5,9,12};
        System.out.println(search(nums, 9));
    }


    public int search(int[] nums, int target) {
        if (target < nums[0] || target > nums[nums.length - 1]) {
            return -1;
        }
        int left = 0;
        int right = nums.length - 1;
        while (left <= right) {
            int mid = left + (right - left) >> 1;
            if (nums[mid] == target) {
                return mid;
            } else if (nums[mid] > target) {
                right = mid - 1;
            } else {
                left = mid + 1;
            }

        }
        return -1;
    }

27. 移除元素

题目链接:https://leetcode.cn/problems/remove-element/description/
这题太简单了,不写思路了

点击查看代码
public int removeElement(int[] nums, int val) {
        int count = 0;
        for (int i = 0; i < nums.length; i++) {
            if (nums[i] != val) {
                nums[count] = nums[i];
                count++;
            }
        }
        return count;
    }

标签:27,target,nums,704,mid,int,移除,left,指针
From: https://www.cnblogs.com/flydandelion/p/18282710

相关文章

  • 代码随想录第四十六天 | 322. 零钱兑换,279.完全平方数,139.单词拆分
    322.零钱兑换看完想法:此处是求最小值,所以递推公式中含Min,即dp[j]=min(d[[j],dp[j-coins[i]]+1),初始化都为INT_MAX,且dp[0] =0。由于不是求组合数,所以物品和背包重量的遍历先后顺序都是可以的。此处要注意一个细节,如果是物品for外循环,背包从coins[j]开始并且j++,(之......
  • Python学习笔记27:进阶篇(十六)常见标准库使用之质量控制中的代码质量与风格第一部分
    前言本文是根据python官方教程中标准库模块的介绍,自己查询资料并整理,编写代码示例做出的学习笔记。根据模块知识,一次讲解单个或者多个模块的内容。教程链接:https://docs.python.org/zh-cn/3/tutorial/index.html质量控制质量控制(QualityControl,QC),主要关注于提高......
  • 代码随想录算法训练营第一天 | 704. 二分查找、27. 移除元素
    704.二分查找这个之前有写过,最重要的就是把握住要去搜索的区间的形式,包括左闭右闭以及左闭右开两种classSolution{publicintsearch(int[]nums,inttarget){intleft=0,right=nums.length;while(left<right){//左闭右开的版本,结果存储......
  • 2736 卡片重排
    题目描述Description可可共有两种卡片,一种卡片是数字0-9编号,一种卡片是字母A-Z编号,现在两种卡片混在一起,可可想将它们归类摆放,但是要求同类卡片中,它们相对位置不可以改变,原先在前的仍然在前,具体规则还可参考样例理解。输入描述InputDescription一行,若干数字及字母,中间无......
  • YC309A [ 20240627 CQYC省选模拟赛 T1 ] 或(or)
    题意给定一个可重集\(S\),求所有的前缀的集合的代价。定义一个集合的代价为:\[\max_x\left((\max_ib_i\lvertx)-(\min_ib_i\lvertx)\right)\]\(n\le10^6,V\le2\times10^6\)Sol首先看到这个式子直接开划。称较大的数为\(b_i\),较小的数为\(b_j\)。直......
  • SOMEIPSRV_FORMAT_27:类型2条目的“保留字段”
    测试目的:验证类型2条目中跟随TTL字段之后的Reserved字段是否被静态设置为0x0000。描述本测试用例旨在确保SOME/IP服务发现协议中,类型2条目格式布局中跟随TTL字段之后的Reserved字段被正确地静态设置为0x0000,特别是对于SubscribeEventgroupAck消息。测试拓扑:具体步骤:D......
  • [IOT2050 question] Unable to listen on http://127.0.0.1:1880/ 端口被占用错误
    1.背景第一次连接node-red的时候,一直出现错误Unabletolistenonhttp://127.0.0.1:1880/。如下:2.原因分析估计是早前利用iot2050setup小工具把node-red设置为开机自动启动项了,导致1880端口一直被占用。3.验证首先查看端口是否真的被占用,利用sudonetstat-ltup命......
  • 数组-移除元素
    移除元素移除元素(leetcode27)varremoveElement=function(nums,val){constn=nums.length;letleft=0;for(letright=0;right<n;right++){if(nums[right]!==val){nums[left]=nums[right];left++......
  • 27_方法的重写
    07_方法的重写子类重写父类的方法静态方法等级较高,不算重写publicclassApplication{publicstaticvoidmain(String[]args){Aa=newA();a.test();//Atest//父类B的引用指向子类ABb=newA();b.test();//Bt......
  • 【SPIE独立出版】第三届智能机械与人机交互技术学术会议(IHCIT 2024,7月27)
    由北京航空航天大学指导,北京航空航天大学自动化科学与电气工程学院主办,AEIC学术交流中心承办的第三届智能机械与人机交互技术学术会议(IHCIT2024)将定于2024年7月27日于中国杭州召开。大会面向基础与前沿、学科与产业,旨在将“人工智能”、“智能系统”和“人机交互”等学......