• 2024-09-11代码随想录算法训练营Day1
    目录704.二分查找 27.移除元素977.有序数组的平方 704.二分查找 分类:左闭右闭、左闭右开Tips:1.循环条件:左闭右闭:左索引<=右索引左闭右开:左索引<右索引2.循环操作:处理元素>目标值:左闭右闭:右索引=折半索引-1左闭右开:右索引=折半索引classSolution{
  • 2024-08-20Leetcode 59.螺旋矩阵II
    力扣题目链接(opensnewwindow)**给定一个正整数n,生成一个包含1到n^2所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。示例:输入:3输出:[[1,2,3],[8,9,4],[7,6,5]]思路这道题目可以说在面试中出现频率较高的题目,本题并不涉及到什么算法,就是
  • 2024-06-05day1.数组
    题目:https://leetcode.cn/problems/binary-search/submissions/537498050/代码随想录解析:https://programmercarl.com/0704.二分查找.html#思路并不熟悉区间不变,很容易写乱,一定要清晰的知道自己的边界。特别需要注意的是,如果为左闭右开,则while中的判断是<;如果为左闭右闭,
  • 2024-05-22代码随想录算法训练营第一天|704,34,35(二分查找),27(双指针)
    二分查找1.使用条件:数组,升序,值不唯一。2.时间复杂度O(logn)可分为左闭右闭,左闭右开两种区间类型来求解。左闭右闭:left=0,right=nums.Length-1,while(left<=right),right=middle-1.左闭右开:left=0,right=nums.Length,while(left<right),right=middle.
  • 2024-04-29二分查找的左闭右开和左闭右闭写法
    0.参考参考链接:二分查找的左闭右开和左闭右闭写法1.思路0.序言lower_bound查找的是升序序列中的第一个出现target的pos,区间应从右向左收缩。upper_bound查找的是升序序列中的最后一个出现target的pos,区间应从左向右收缩。主循环判断本质目的是为了确保整个区间能够被检索
  • 2023-12-31代码随想录 小结01 数组
    数组篇一共有五个题目第一题二分查找值得注意的是,要自己想好区间的边界到底是写左闭右开还是左闭右闭根据边界不同while的条件和左右指针的移动会有差别目前我的习惯是写左闭右开还是固定一下习惯比较好第二题是实现数组类的erase()使用快慢指针可以做到在数组原地进
  • 2023-12-28day01 代码随想录算法训练营 704. 二分查找
    题目:leetcode704.二分查找 感悟:困扰我多年的二分查找对于边界的判断,我终于理解了。难点:难点1:定边界rightright=len(nums)还是len(nums)-1 难点2:while循环whileleft<right还是left<=right 难点3:mid取值mid=right-1还是mid=right  结论:1.自己确定
  • 2023-11-17数组
    一、二分二分法使用条件:1、要有序。2、无重复的数。二分法算细节:二分有不变量和变量。变量的改变要始终遵循不变量的规则。区间的定义就是不变量。要在二分查找的过程中,保持不变量,就是在while寻找中每一次边界的处理都要坚持根据区间的定义来操作,这就是循环不变量规则。三
  • 2023-10-11代码随想录算法训练营第一天(python) | 704. 二分查找、27. 移除元素。
    Leetcode704二分查找题目链接:704二分查找关键点思路:1、是否要进入到while部分的代码是left<=right还是left<right,看[left,right]是否是合法区间.例如[1,1]是合法区间,取<=;[1,1)非合法区间,取<。2、缩小区间时,考虑边界是否已经比较过。左闭右闭区
  • 2023-09-08LeetCode704.二分查找
    二分查找学习内容二分查找是在一个数组里,找一个target,判断这个target在不在数组中,在的话就返回这个target所在数组的下标。二分查找有两个误区:while的条件是小于还是小于等于-while(left<=right)while(left<right)if后执行的语句是=mid还是等于mid-1if(num[mid]>target){r
  • 2023-07-26代码随想录算法训练营第一天| LeetCode 704. 二分查找、LeetCode 27. 移除元素
    704.二分查找    题目链接:https://leetcode.cn/problems/binary-search/   视频链接:https://www.bilibili.com/video/BV1fA4y1o715     文章讲解:https://programmercarl.com/0704.%E4%BA%8C%E5%88%86%E6%9F%A5%E6%89%BE.html    卡哥的题目建
  • 2023-06-05二分查找
    思路二分法的前提是数组有序。另外,当数组中存在重复元素时,最后返回的下标可能不唯一,具体实现不同,可能导致最后结果也不同。left和right代表搜索区域的上下界,其基本思路就是把数组搜索区域分成两个区域,通过middle指针判别目标值属于哪个区域,然后在目标值所在的区域进一步二分,逐
  • 2023-05-28【LeetCode】704.二分查找
    704.二分查找解析:思路一:暴力解法,直接遍历,从头开始查找,如果找到直接返回下标,找不到返回-1。classSolution{public:intsearch(vector<int>&nums,inttarget){for(inti=0;i<nums.size();i++){if(nums[i]==target)
  • 2023-05-21【代码练习】一道题带你掌握二分查找
    二分查找解析:思路一:暴力解法,直接遍历,从头开始查找,如果找到直接返回下标,找不到返回-1。classSolution{public:intsearch(vector<int>&nums,inttarget){for(inti=0;i<nums.size();i++){if(nums[i]==target)
  • 2023-04-19代码随想录算法训练营第一天| 704. 二分查找、27. 移除元素。
    目录一、基础知识-二分法解题思路-数组中删除的思路二、题目一:704.二分查找三、题目二:27.移除元素一、基础知识1.二分法解题思路要求数组必须是有序排列,仅需要根据题目的条件去确定搜索区间。第一个关键点:区间的取值。一般有左闭右闭,左闭右开,左开右闭三种,这个的选择
  • 2023-04-12浅谈切片操作
    引言在很多语言中都有切片这个操作,比如python,rust,go等等,而且大多数都是左闭右开的索引方式。以rust为例子,我创建了一个String变量,以及它的两个字符串切片。在rust中,切片就是对String类型中某一部分的引用fnmain(){lets=String::from("HelloWorld");lethel
  • 2023-03-14二分查找——区间开闭性
    具体到代码上,二分查找时区间的左右端取开区间还是闭区间在绝大多数时候都可以,因此有些初学者会容易搞不清楚如何定义区间开闭性。这里我提供两个小诀窍,第一是尝试熟练使用
  • 2023-02-09二分查找 Leetcode704
    1.二分查找(Leetcode704)题目:给定一个n(n在[1,10000]之间)个元素有序的(升序)整型数组nums和一个目标值target,写一个函数搜索nums中的target,如果目标值存在返回下标,否
  • 2023-02-03代码随想录-数组-C++总结
    1.二分查找重点区分左闭右开,左闭右闭两种写法中的差异,理解循环中的不变量,这样在returnr还是l和什么时候l+1r-1什么时候不需要+1-1很重要。35.搜索插入位置-力扣(Leet
  • 2023-02-01代码随想录算法训练营第一天 | 704. 二分查找、27. 移除元素
    704.二分查找力扣题目链接:https://leetcode.cn/problems/binary-search/核心:使用二分法前提:1)数组为有序数组2)数组中无重复元素。二分法区间的定义:
  • 2023-02-01代码随想录算法训练营day1
    代码随想录打卡day1今日学习内容(2月1日)阅读数组的基本理论学习二分查找并完成题目学习移除元素并完成题目总结学习到了二分法的两种情况(左闭右闭,左闭右开)
  • 2022-12-28二分查找
    一、二分查找1.二分查找方法概述二分查找是针对有序数组的一种查找方式。是利用(letf+right)/2=mid的方式来对半缩短搜索范围的一种方法,一次查找,搜索的范围就会减半。相
  • 2022-12-19二分的边界问题
    如何正确判断二分边界?常见问题while内条件是\(\leq\)还是\(<\)left和right的修改时用不用加\(1\)减\(1\)例题分析例:给定一个正整数\(n(1\leqn\leq
  • 2022-10-12二分法寻找峰值、二分法通俗易懂简单解释讲解
    题目:BM19寻找峰值、力扣162.寻找峰值publicclassSolution{/***保持在上坡的一边一定可以找到峰值,上坡只有两种情况一直为上坡,或者变为下坡这两
  • 2022-09-02螺旋矩阵 II
    螺旋矩阵II给你一个正整数n,生成一个包含1到n2所有元素,且元素按顺时针顺序螺旋排列的nxn正方形矩阵matrix。示例1:输入:n=3输出:[[1,2,3],[8,9,4],[7,6,5]