Day1 刷题第一天打卡

这篇具有很好参考价值的文章主要介绍了Day1 刷题第一天打卡。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Leetcode 704. 二分查找

给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target  ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1

示例 1:

输入: nums = [-1,0,3,5,9,12]target = 9输出: 4
解释: 9 出现在 nums 中并且下标为 4

示例 2:

输入: nums = [-1,0,3,5,9,12]target = 2输出: -1
解释: 2 不存在 nums 中因此返回 -1

提示:

  1. 你可以假设 nums 中的所有元素是不重复的。
  2. n 将在 [1, 10000]之间。
  3. nums 的每个元素都将在 [-9999, 9999]之间。
class Solution {
public:
    int search(vector<int>& nums, int target) {
        int l = 0 ;
        int r = nums.size()-1;
        /* 
        //找左边界
        while(l < r){
            int mid = l + r >> 1;
            if (nums[mid] >= target) r = mid;
            else l = mid + 1;
        }
        if (nums[l]==target)  //此时nums[l]=nums[r]
            return l;
        else 
            return -1;*/

        //找右边界
        while(l < r){
            int mid = l + r + 1 >> 1;  //整数除法向下取整,如果不 + 1 会导致l = mid时mid = l + r >> 1死循环
            if(nums[mid] <= target) l = mid;
            else r = mid - 1;
        }
        if (nums[r]==target) //此时nums[r]=nums[l]
            return r;
        else 
            return -1;
    }
};

背诵二分查找的模板

相关题目已完成

  • 35.搜索插入位置(opens new window)
  • 34.在排序数组中查找元素的第一个和最后一个位置(opens new window)
  • 69.x 的平方根
  • 367.有效的完全平方数

27. 移除元素

给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。

不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组

元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。

示例 1:

输入:nums = [3,2,2,3], val = 3
输出:2, nums = [2,2]
解释:函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。你不需要考虑数组中超出新长度后面的元素。例如,函数返回的新长度为 2 ,而 nums = [2,2,3,3] 或 nums = [2,2,0,0],也会被视作正确答案。

示例 2:

输入:nums = [0,1,2,2,3,0,4,2], val = 2
输出:5, nums = [0,1,4,0,3]
解释:函数应该返回新的长度 5, 并且 nums 中的前五个元素为 0, 1, 3, 0, 4。注意这五个元素可为任意顺序。你不需要考虑数组中超出新长度后面的元素。

提示:

  • 0 <= nums.length <= 100
  • 0 <= nums[i] <= 50
  • 0 <= val <= 100
class Solution {
public:
    int removeElement(vector<int>& nums, int val) {
        int low = 0;
        for(int fast = 0; fast < nums.size() ; fast ++){
            if(nums[fast] != val){
                nums[low ++] = nums[fast];
                /*相当于nums[low] = nums[fast];
                low++;*/
            }
        }
        return low;
    }
};

双指针用法文章来源地址https://www.toymoban.com/news/detail-468586.html

到了这里,关于Day1 刷题第一天打卡的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 代码随想录第一天 | LeetCode704.二分查找,LeetCode 27.移除元素

    数组理论基础要点: 数组也是数据结构的一种, 是存放在连续内存空间上的相同类型数据的集合。 数组注意点: 数组下标都是从0开始的。 数组内存空间的地址是连续的。 因为上述两点, 数组的在内存空间的地址是连续的,所以我们在删除或者增添元素的时候,就难免要

    2024年02月08日
    浏览(40)
  • 蓝桥杯打卡Day1

        文章目录 全排列 八皇后 本题思路: 本题是一道经典的全排列问题,深度优先搜索即可解决。 利用STL库中的next_permutation函数来求全排列问题: 本题思路: 利用dfs的方式找出92组解,判定该点是否可以放皇后时,用了三个bool类型的数组col[N], dg[N], udg[N]来储存某列,某正对角

    2024年02月10日
    浏览(31)
  • 力扣打卡第一天

    C++: python: 题目解释:在给出的示例中,2 - 4 - 3代表342,5 - 6 - 4代表的是465. 2+5=7,4+6=10(有进位,因此第二位为0),得到7 - 0,然后3+4=7,因为前一位有进位,所以7+1=8,得到7 - 0 - 8

    2024年04月23日
    浏览(25)
  • 拒绝摆烂!C语言练习打卡第一天

      🔥 博客主页: 小王又困了 📚 系列专栏: 每日一练 🌟 人之为学,不日近则日退  ❤️ 感谢大家点赞👍收藏⭐评论✍️ 🗒️前言: 在前面我们学习完C语言的所以知识,当然练习巩固也不能落下。俗话说:“ 无财之谓贫,学而不能行之谓病 。”可见实践对我们学习的

    2024年02月13日
    浏览(37)
  • Leetcode刷题第八天-回溯

    22:括号生成 链接:22. 括号生成 - 力扣(LeetCode) 括号是一对,所以每一次递归结束条件是字符串长度=2*n 有效括号判断:\\\'(\\\'个数==\\\')\\\'个数时,当前必须是\\\'(\\\',\\\'(\\\'个数==n时,必须是\\\')\\\',其他情况当前位置遍历两边,既可以是\\\'(\\\'又可以是\\\')\\\' generateParenthesis 89:格雷编码 链接:89.

    2024年02月19日
    浏览(25)
  • 代码随想录算法练习Day1:二分查找

    题目链接:704. 二分查找 卡哥视频讲解:手把手带你撕出正确的二分法 | 二分查找法 | 二分搜索法 | LeetCode:704. 二分查找 二分法概述: 二分法(Binary Search)是一种在有序数组或列表中查找目标元素的算法。 二分法使用前提 : 有序数组或列表 :二分法要求在查找的数据结

    2024年04月23日
    浏览(32)
  • 【C刷题】day1

    一、选择题 1.正确的输出结果是 【答案】: 3,8 【解析】 : 考点: (1)局部变量只在定义变量得到区域使用,在main函数中定义的局部变量,只能在main函数中使用 (2)当局部变量和全局变量同名的时候,局部变量优先 swap()函数交换的是全局变量的x和y,也就是全局变

    2024年02月09日
    浏览(23)
  • 代码随想录day1 | 704.二分查找 27.移除元素

    1、循环变量 2、判断条件 当时左闭右闭时,while循环里面的条件,我们可以先假设,有等号即有left=right的情况,例如[1,1]这个区间,那么循环是要进入里面的,所以要取得等号。 判断的时候,nums[mid]tar,那么必然tar不在右半区间,所以right=mid-1 nums[mid]tar,那么必然tar不在左半

    2024年02月15日
    浏览(52)
  • day1-数组part01| 704. 二分查找、27. 移除元素

    数组是存放在连续内存空间上的相同类型数据的集合。 数组下标从0开始 数组内存空间的地址是连续的 1、vector是顺序容器,其利用连续的内存空间来存储元素,但是其 内存空间大小是能够改变的 。 2、array是顺序容器,其也是利用连续的内存空间来存储元素,但它的 内存空

    2024年02月05日
    浏览(32)
  • leedcode刷题笔记day1

    题目大意: 暴力解法 两个for循环(也是我一看到题目想到的方法) 枚举在数组中所有的不同的两个下标的组合逐个检查它们所对应的数的和是否等于 target 复杂度分析 时间复杂度:O(n2),这里 n 为数组的长度 空间复杂度:O(1),只用到常数个临时变量 使用哈希表 为了省去一层

    2024年01月20日
    浏览(24)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包