首页 > 编程语言 >代码随想录算法训练营第一天 | 704. 二分查找,27. 移除元素

代码随想录算法训练营第一天 | 704. 二分查找,27. 移除元素

时间:2024-08-15 17:42:35浏览次数:5  
标签:arr 27 nums int 随想录 mid fast 移除 size

 704. 二分查找

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

1,左闭右闭
public int search(int[] nums, int target) {
        int low=0; 
        int high=nums.length-1;
        while(low<=high){
            int mid = (high+low)/2;
            if(nums[mid]==target){
                return mid;
            }
            else if(nums[mid]>target){
                high=mid-1;
            }
            else{
                low=mid+1;
            }
        }
        return -1;
    }

  2. 左闭右开

public int search(int[] nums, int target) {
        int low=0;
        int high=nums.length;
        while(low<high)
        {
            int mid = (low + high)/2;
            if(nums[mid]==target)
            {
                return mid;
            }else if(nums[mid]>target)
            {
                high=mid;
            }else if(nums[mid]<target)
            {
                low=mid+1;
            }
        }
        return -1;
    }

 

 
27. 移除元素
题目链接:https://leetcode.cn/problems/remove-element/ 

暴力的解法:

    public static int deleteNum1(int[] arr, int deleteNum) {
        int size = arr.length;

        for (int i = 0; i < size; i++) {
            if (arr[i] == deleteNum) {
                for (int j = i + 1; j < size; j++) { 
                    arr[j - 1] = arr[j];
                }
                i--;  
                size--; 
            }
        }

        return size;
    }

 

双指针法:

  public int removeElement(int[] nums, int i) {
        int slow = 0;
        for (int fast = 0; fast < nums.length; fast++) {
            if (nums[fast] != i) {
                nums[slow++] = nums[fast];
            }
        }
        return slow;
    }

 

 

 

标签:arr,27,nums,int,随想录,mid,fast,移除,size
From: https://www.cnblogs.com/hewx/p/18361424

相关文章

  • 代码随想录算法训练营第43天:动态规划part10:子序列问题
    300.最长递增子序列力扣题目链接(opensnewwindow)给你一个整数数组nums,找到其中最长严格递增子序列的长度。子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7]是数组[0,3,1,6,2,2,7]的子序列。示例1:输入:nums=[10,9,2......
  • 代码随想录day30 || 452 引爆气球,435 无重叠区间,763 划分字母区间
    452射爆气球funcfindMinArrowShots(points[][]int)int{ //思路,尝试按照startasc,endasc排序一下,取交集射爆 iflen(points)==1{ return1 } sort.Slice(points,func(i,jint)bool{ ifpoints[i][0]==points[j][0]{ returnpoints[i][1]<points......
  • 欧阳坚持每周一篇高质量文章,半年后收入1380.27元
    前言大家好,我是欧阳,到目前为止欧阳已经坚持连续高质量周更文章7个多月了。在第6个月时就想写一篇半年总结,但是因为拖延症直到现在才写这篇半年复盘文章。我的成果先来说一下连续周更半年取得的成果,分别是收入1380.27元、电子书一本、微信技术群418人、微信好友459人、文章38篇......
  • 代码随想录Day15
    110.平衡二叉树(优先掌握递归)给定一个二叉树,判断它是否是平衡二叉树平衡二叉树是指该树所有节点的左右子树的深度相差不超过1。示例1:输入:root=[3,9,20,null,null,15,7]输出:true示例2:输入:root=[1,2,2,3,3,null,null,4,4]输出:false示例3:输入:root=[]输出:t......
  • 开发者必看:27个顶级技术社区及工具网站推荐
    作为一名开发者,掌握一些常用的网站工具和资源可以极大地提高工作效率。一些开发者常用的必备网站,涵盖了代码托管、文档查询、调试工具、设计资源等多方面内容。......
  • 【4461697279】08.14.24
    08144461697279486561642050696374757265:4120736f6e6720666f7220746f646179:《ねこふんじゃった。feat.可不》A4。穿ってビンテージに特化して专门穿上特色的(vintage)衣装祈ってい「」って祈祷着「」存在わかっているんだ是明了的不自然と神は交わらない不自然的与神......
  • 洛谷P2789 直线交点数 题解
    解题思路考虑将直线分组,每组内直线互相平行,任意两组直线间交点数量等于两组内直线数量乘积。分组操作使用dfs,求出交点数量后加入set去重,输出set大小。时间复杂度O(2NN2)有点鬼畜但是可以通过。实现#include<cstdio>#include<unordered_set>inta[30];std::unordered_set......
  • 【Python-办公自动化】几秒搞定几天的工作量之根据指定要求汇总求和排序成278张表格
    欢迎来到"花花ShowPython",一名热爱编程和分享知识的技术博主。在这里,我将与您一同探索Python的奥秘,分享编程技巧、项目实践和学习心得。无论您是编程新手还是资深开发者,都能在这里找到有价值的信息和灵感。自我介绍:我热衷于将复杂的技术概念以简单易懂的方式呈现给大家,......
  • 【代码随想录】一、数组:3.双指针 - 977.有序数组的平方
    本文为977.有序数组的平方的解法,部分图文参考自代码随想录977.有序数组的平方。1.题目1:977.有序数组的平方1.1.解法1:直接排序classSolution{public:vector<int>sortedSquares(vector<int>&nums){for(inti=0;i<nums.size();i++){n......
  • 【代码随想录】一、数组:2.移除元素
    部分图文参考于:代码随想录-移除元素和力扣官方解法。1.题目1★:27.移除元素1.1.解法1:暴力解法考验对数组底层实现的理解:数组的元素是不能删的,只能覆盖。通过两层for循环来求解,外层for循环遍历数组元素,内层for循环将目标值进行覆盖。classSolution{public:intremove......