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

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

时间:2024-01-24 18:23:27浏览次数:39  
标签:二分 27 int 随想录 high middle low 移除

704. 二分查找
题目链接:https://leetcode.cn/problems/binary-search/
文章讲解:https://programmercarl.com/0704.二分查找.html
简单的二分查找法,核心是认识区间的意义,注意以下几点:

  • middle=low+(low+high)/2;这种写法可以防止溢出。
  • 注意low和high的循环条件判断,如果是左闭右闭的区间,则为low<=high,否则为low<high(左闭右开区间)
  • 注意high的取值,若为左闭右闭的区间,则为right=middle-1;否则为right=middle(左闭右开区间)
点击查看代码
class Solution {

    public:
    int search(vector<int>& nums, int target) {
        int low = 0, high = nums.size() - 1;
        int middle;
        while (low <= high) {
            middle = low + (high - low) / 2;
            if (nums[middle] == target)
                return middle;
            else if (nums[middle] < target) {
                low = middle + 1;
                continue;
            } else if (nums[middle] > target) {
                high = middle - 1;
                continue;
            }
        }
        return -1;
    }
};

27. 移除元素
题目链接:https://leetcode.cn/problems/remove-element/
文章讲解:https://programmercarl.com/0027.移除元素.html
删除有序数组中重复项,用双指针,ez

点击查看代码
class Solution {
public:
    int removeElement(vector<int>& nums, int val) {
    int del=0;
    int s=nums.size();
    for(int i=0;i<nums.size();i++)
    if(nums[i]==val)
    {
        del++;
    }
    else
    {
        nums[i-del]=nums[i];
    }
    return s-del;
    }
};

标签:二分,27,int,随想录,high,middle,low,移除
From: https://www.cnblogs.com/Liubox/p/17985470

相关文章

  • day25 代码随想录算法训练营 216. 组合总和 III
    题目:216.组合总和III我的感悟:还是按照之前的套路来。多了一个参数path_sum应该是有两处剪枝,1处横线剪枝,1处纵向剪枝?或者说1处求和剪枝?1处范围剪枝?【疑问】理解难点:不剪枝的已经模的差不多了,剪枝的再看看 自己听了一遍写的:[未剪枝]classSolution:defcombina......
  • Redis整形溢出漏洞(CVE-2021-32761)及修复脚本
    今天的计划是修复线上的redis漏洞Redis整形溢出漏洞(CVE-2021-32761)及修复脚本目的:修复生产的redis漏洞,主要是整数溢出漏洞,但是过程中发现还有反弹shell漏洞(次要,毕竟需要密码)计划:获取生产的redis版本账号和密码在测试环境搭建反正环境漏洞的研究与证实测试环......
  • JS逆向实战27——pdd的anti_content 分析与逆向
    声明本文章中所有内容仅供学习交流,抓包内容、敏感网址、数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除!本文已在微信公众号发布目标网站aHR0cHM6Ly9tb2JpbGUucGluZHVvZHVvLmNvbS8=任务获取商品列表接口......
  • 1.27号(本周六)直播:golang开发远程控制工具
    本次的课程的内容为:1、远控编写2、工具代码编写3、工具测试 1月27日晚20:00,我们不见不散~ Ms08067安全实验室专注于网络安全知识的普及和培训,是专业的“图书出版+培训”的网络安全在线教育平台,专注于网络安全领域中高端人才培养。平台已开设Web安全零基础就业,Web高级安全......
  • remove 移除数据
    //云端代码constdb=uniCloud.database()exports.main=async(event,context)=>{constcollection=db.collection(event.name)constdocList=awaitcollection.where(event.data).get()if(!docList.data||docList.data.length===0){......
  • 代码随想录 day28 复原IP地址 子集 子集II
    复原IP地址本题确实比较有难度主要很难一开始就发现切入点虽然被提示了和切割字符串很像还是看了题解回溯部分重点就是怎么去切割这个ip地址这里注意要尝试每个位置都去加'.'去分割后面会回溯由于是ip地址也就是提示了是四段式并且利用isValid去判断是否合法还有一些......
  • [代码随想录] 第十二天
    144.二叉树的前序遍历[https://leetcode.cn/problems/binary-tree-preorder-traversal/]思路:栈实现的迭代遍历:出栈记录,右孩子非空右孩子进栈,左孩子非空左孩子进栈。/***Definitionforabinarytreenode.*publicclassTreeNode{*intval;*TreeNodeleft;*Tre......
  • P2627 [USACO11OPEN] Mowing the Lawn G ( [USACO Open11] 修剪草坪/P2034 选择数字 )题
    P2627[USACO11OPEN]MowingtheLawnG搬运工单调队列优化DP简单题,和P2034重了题意:给定一行\(n\)个非负整数\(a_1\cdotsa_n\)。现在你可以选择其中若干个数,但不能有超过\(k\)个连续的数字被选择。你的任务是使得选出的数字的和最大。(直接抄的2034)正着考虑发现很麻烦,......
  • CF327C Magic Five 题解
    CF327CMagicFive搬运工单调队列优化DP加等比数列求和首先\(5\)的倍数要求末尾是\(0\)或\(5\)所以我们只用看给定字符串的\(0\)和\(5\)就好,我们钦定他是最终的数的末尾。在他之前的选择删掉,在他之后的全部删掉,方案数就是\(2^{pow-1}\),答案累加就可以了。容易想到......
  • 万源生万德(9.27)
    司准专练T1马拉车。T2字符串哈希,考虑二分之后把矩阵练成字符串。哈希一定保证字符集小。以及矩阵哈希,类似于二维差分,即:\[H_{i,j}=H_{i-1,j}P_1+H_{i,j-1}P_2-H_{i-1,j-1}P_1P_2+S_{i,j}\]\[Hash(x_1,x_2,y_1,y_2)=H_{x_2,y_2}-H_{x_2,y_1-1}P_2^{y_2-y_1+1}-H_{x_1-1,y_2}......