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

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

时间:2023-12-13 20:56:50浏览次数:41  
标签:27 704 复杂度 元素 随想录 数组 移除 指针

一、数组理论基础

学习前:

1. 数组定义
一些在内存上连续存储的相同数据类型的数据的集合
2. 数组特征
便于查询数组元素,不便于增删数据元素

学习后

对于Java,二维数组不一定在内存上连续。如int[i][j],唯一确定的是int[i][]在内存上连续


二、704. 二分查找

LeetCode 704. 二分查找

学习前:

思路:

  • 左闭右闭(while(left<=right);left=mid+1,right=mid-1,mid=(right+left)/2) 习惯用这种
  • 左闭右开(while(left<right);left=mid+1,right=mid,mid=(right+left)/2)

时间复杂度:O(logn)
空间复杂度:O(1)

学习后:

mid=(right-left)/2+left,防溢出


三、27. 移除元素

Leetcode 27. 移除元素

学习前:

思路:
快慢指针。慢指针指向符合条件的数组元素,快指针指向不符合条件的数组元素,并将快指针指向的值赋值给慢指针指向的值
时间复杂度:O(n)
空间复杂度:O(1)

学习后:

快慢指针就是将2个for循环变成1个for循环,即时间复杂度从O(n^2)到O(n)


四、学习总结

  1. 时间:1.5h
  2. 学会了写博客以及Markdown基本语法
  3. 复习了数组相关知识,并有新收获

标签:27,704,复杂度,元素,随想录,数组,移除,指针
From: https://www.cnblogs.com/amulet/p/17899889.html

相关文章

  • 代码随想录算法训练营第一天| LeetCode704 二分查找、27移除元素
     Leetcode704:二分查找今日学习的文章链接:代码随想录(programmercarl.com) 题目链接:704.二分查找-力扣(LeetCode)●  自己看到题目的第一想法这题我会,但是还没明白卡尔说的循环不变量是什么意思。我的固定思路就是,target比中间值大,左指针右移到mid+1;target比中间值......
  • 算法学习Day1,二分查找,移除元素
    Day1二分查找,移除元素ByHQWQF2023/12/13笔记704.二分查找给定一个n个元素有序的(升序)整型数组nums和一个目标值target,写一个函数搜索nums中的target,如果目标值存在返回下标,否则返回-1。解法:使用二分查找来在一个有序的数组中找到指定元素的下标。根据数据边界......
  • P1527 [国家集训队] 矩阵乘法
    题意给定一个矩阵,每次询问子矩阵的第\(k\)大。Sol考虑把莫队扔到二维上来做。发现复杂度变为:\(O(n^2q^{\frac{3}{4}})\)。卡卡常就过了。Code#include<iostream>#include<algorithm>#include<cstdio>#include<array>#include<cmath>#include<vector>#i......
  • 【洛谷 P1271】【深基9.例1】选举学生会 题解(计数排序)
    【深基9.例1】选举学生会题目描述学校正在选举学生会成员,有名候选人,每名候选人编号分别从1到,现在收集到了张选票,每张选票都写了一个候选人编号。现在想把这些堆积如山的选票按照投票数字从小到大排序。输入格式输入和以及个选票上的数字。输出格式求出排序后的选票编......
  • 代码随想录算法训练营Day1 | 704.二分查找、27.移除元素
    LeetCode704.二分查找二分查找是一种基础的算法,其核心思想在高中数学中就已经被大家所熟知了,然而对于代码的实现,其细节问题常常令人头疼,比如while循环的条件是什么?middle是该+1还是-1?这些问题需要有一个清晰的认知。题目链接如下:704.二分查找Carl的讲解链接:二分查找算法......
  • 即时通讯技术文集(第27期):实时音视频技术合集(Part2) [共17篇]
    ​为了更好地分类阅读52im.net总计1000多篇精编文章,我将在每周三推送新的一期技术文集,本次是第27 期。[- 1 -] 专访微信视频技术负责人:微信实时视频聊天技术的演进[链接] http://www.52im.net/thread-1201-1-1.html[摘要] 本次专访是对谷沉沉老师在即将到来的2017Ar......
  • pydantic.errors.PydanticImportError,'pydantic:compiled' 在 Pydantic 版本 2 中已被
    今天编译python程序时pyinstaller-F--version-filefile_version_info.txtMelliferaCMD.py收到错误:58759INFO:Loadingmodulehook'hook-pydantic.py'from'D:\\env\\fbt\\Lib\\site-packages\\_pyinstaller_hooks_contrib\\hooks\\stdhooks'......
  • 解决 OSError: [WinError -1066598274] Windows Error 0xc06d007e (xjl456852原创)
    异常OSError:[WinError-1066598274]WindowsError0xc06d007e或Processfinishedwithexitcode-1066598274(0xC06D007E)遇到问题:程序在调用PCA方法时,出现上述异常.这种PCA方法使用sklearn中的依赖包.我尝试了pip和mamba重新安装多个依赖包之后问题得到解决(只选择一......
  • 「杂题乱刷」CF1272D
    题目链接CF1272DRemoveOneElement题意简述给定一个长度为\(n\)的序列,你需要求出至多删除一个数后的这个序列的最长上升子串。解题思路首先我们可以想一下这题的弱化版,给定一个长度为\(n\)的序列,你需要求出至多删除一个数后的这个序列的最长上升子序列。这题我们可以......
  • P2762 太空飞行计划问题
    题意有\(n\)个工作,每个工作需要一些限制。你可以花\(s_i\)的代价满足一个限制。然后获得\(h_i\)的贡献。问是的获得的贡献最大可以使多少?Sol最小割。从源点往每个实验连\(h_i\),每个实验往每个代价连\(inf\).代价往汇点连\(s_i\)就行了。Code#include<iostrea......