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

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

时间:2022-10-12 14:12:50浏览次数:77  
标签:二分 slow 17 nums int 随想录 mid 查找 移除

算法训练营第一天,训练内容是二分查找和双指针。

704. 二分查找

```

 class Solution {

    public int search(int[] nums, int target) {

        int n = nums.length;

        int l = 0;

        int r = n;

        while(l<r){

            int mid = l + r >>1;

            if(nums[mid] == target){

                return mid;

            }

            else if (nums[mid] > target){

                r = mid;

            }

            else {

                l = mid + 1;

            }

        }

        return -1;

    }

}

```

这道题是最基础的二分查找,可以通过左闭右闭和左闭右开的方式来进行二分查找,以上的代码使用的是左闭右开的方式。也就是[left, right)。 

 

27. 移除元素

```

class Solution {

    public int removeElement(int[] nums, int val) {

        int n = nums.length;

        int slow = 0;

 

        for(int i = 0; i<n; i++){

            int temp = nums[i];

            if(temp!=val){

                nums[slow++] = temp;

            }

        }

        return slow;

    }

}

```

这道题用双指针可以很容易地过,首先定义一个慢指针slow,和一个不断向前的指针i,当i遇到与value不同的数字的时候,slow就让所在位置的数字变为i所指的数字,这样就可以保证slow经过的数字中,不会有与value相同的数字了

 

今天是训练营的第一天,都是easy的基本题

标签:二分,slow,17,nums,int,随想录,mid,查找,移除
From: https://www.cnblogs.com/catSoda/p/16784311.html

相关文章

  • P1784 数独
    数独题目描述数独是根据\(9\times9\)盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行、每一列、每一个粗线宫内的数字均含\(1-9\),不重复。每一道合格的数......
  • 【算法训练营day1】LeetCode704. 二分查找 LeetCode27. 移除元素
    【算法训练营day1】LeetCode704.二分查找LeetCode27.移除元素LeetCode704.二分查找题目链接:704.二分查找初次尝试看到题目标题是二分查找,所以尝试使用二分查找的......
  • 中等-817. 链表组件
    解题思路:对链表循环执行结果:通过执行用时:232ms,在所有 JavaScript 提交中击败了36.36%的用户内存消耗:44.5MB,在所有 JavaScript 提交中击败了93.18%的用户通......
  • 516多表关系案例和517三大范式概念
    多表关系案例--创建旅游线路分类表tab_categore--cid旅游限度分类主键,自动增长--cname旅游线路分类名称非空,唯一字符串100CREATETABLEtab_category(cid......
  • 代码随想录训练营|Day 22|235,701,450
    235.LowestCommonAncestorofaBinarySearchTreeGivenabinarysearchtree(BST),findthelowestcommonancestor(LCA)nodeoftwogivennodesintheBST.......
  • 817. 链表组件
    817.链表组件给定链表头结点 head,该链表上的每个结点都有一个唯一的整型值。同时给定列表 nums,该列表是上述链表中整型值的一个子集。返回列表 nums 中组件的......
  • Codeforces1736C2. Good Subarrays (Hard Version)
    Codeforces1736C2.GoodSubarrays(HardVersion)题解:记\(ans[i]\)为以\(i\)为结尾最长的好的数列长度观察发现,以\(i\)为结尾的好的数列,长度可以是\(1,2,3,...,......
  • 1790. 仅执行一次字符串交换能否使两个字符串相等
    题目给你长度相等的两个字符串s1和s2。一次字符串交换操作的步骤如下:选出某个字符串中的两个下标(不必不同),并交换这两个下标所对应的字符。如果对其中一个字符串......
  • 在Linux平台上安装JDK 17
    在Linux平台上安装JDK介绍Linux平台JDK的安装步骤及系统要求。本主题包括以下部分:​​在Linux平台上安装JDK的一般注意事项​​​​在Linux平台上安装JDK的系统要......
  • CSP-S模拟14 ~ CSP-S模拟17 杂题选讲
    \(\text{Preface}\)我觉得殷教说的很对。如果说强行让我写之前咕掉的总结我觉得意义不大,而且我大多数题也都忘了再写思路不一定对而且有亿点敷衍,所以我就写其中一部分吧......