![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构和算法
以刷题巩固数据结构,提高算法编程能力。
哆哆jarvis
我是一名芯片原厂的Linux驱动开发工程师,深入操作系统的世界,贯彻终身学习、终身成长的理念。
平时喜欢折腾,寒冬之下,抱团取暖,期待你来一起探讨技术、搞自媒体副业,程序员接单和投资理财。【对了,不定期送闲置开发板、书籍、键盘等等】
展开
-
<leetcode刷题-数组> 【双指针】旋转数组
↓↓↓↓↓↓↓关注获取更多内容↓↓↓↓↓↓题目给你一个数组,将数组中的元素向右轮转 k 个位置,其中 k 是非负数示例 1:[5,6,7,1,2,3,4]思路分析关键点:旋转把这个数组比喻成一个圆的直径,当我们翻转180°时,令left为最左边,right为正好落在了最后边。当我们再次翻转180°,又会还原成自己。所以针对这个数组,当我们进行2次翻转,数组里面元素的排列顺序是不会改变的,而元素的位置取决于旋转对称轴。所以, 这里旋转的本质就是:l 和 r对调原创 2021-12-12 19:49:14 · 4028 阅读 · 0 评论 -
浅谈线性表
halo~大家好,今天来跟大家分享数据结构线性表、栈与队列的区别。 一、线性表1、什么是线性表 还记得我们小学时放学之前要做什么吗--排队。我记得我总是排在第二位置,前面是那个男孩,后面是另外一个男孩,每次都是他们,为什么要这么做?因为当我看不见他们的时候,老师可以迅速找出谁不在,迅速清点人数。这种排好队的组织方式,就是我们即将学习的数据结构:线性表。2、线性表(List)的定义原创 2021-06-13 17:37:07 · 100 阅读 · 0 评论 -
leetcode刷题<278>. 第一个错误的版本(二分查找)
题目你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。假设你有 n 个版本 [1, 2, …, n],你想找出导致之后所有版本出错的第一个错误的版本。你可以通过调用 bool isBadVersion(version) 接口来判断版本号 version 是否在单元测试中出错。实现一个函数来查找第一个错误的版本。你应该尽量减少对调用 API 的次数来源:力扣(LeetCode)链接原创 2021-06-13 16:58:45 · 67 阅读 · 0 评论 -
算法学习<3>---递归
引言数据结构和算法对于程序员来说相当重要,我最近打算学习这一门课程,并以博客的形式记录自己的学习过程和心得,目前暂时从两本书入手,一本是《大话数据结构》,一本书《算法图解》,我先从《算法图解》,这本手开始学习吧~。如果你最近也在学习,可以关注一起学习,一起交流哦~递归递归的定义我们把一个直接调用自己或者通过一系列的调用语句调用自己的函数称为递归函数,每个递归函数都有两部分:基线条件(base case)和递归条件(recursive case)。递归条件指的是函数调用自己,而基线条件则指的是函数不原创 2020-08-19 22:00:49 · 188 阅读 · 0 评论 -
算法学习<2>---选择排序
引言数据结构和算法对于程序员来说相当重要,我最近打算学习这一门课程,并以博客的形式记录自己的学习过程和心得,目前暂时从两本书入手,一本是《大话数据结构》,一本书《算法图解》,我先从《算法图解》,这本手开始学习吧~。如果你最近也在学习,可以关注一起学习,一起交流哦~选择排序学习选择排序算法之前先回顾一下数组和链表的特点:数组擅长随机读取,而链表擅长插入和删除。下面是常见数组和链表操作的运行时间。数组链表读取O(1)O(n)插入O(n)O(1)删除O(n原创 2020-08-18 22:37:58 · 176 阅读 · 0 评论 -
算法学习<1>---二分查找
引言数据结构和算法对于程序员来说相当重要,我最近打算学习这一门课程,并以博客的形式记录自己的学习过程和心得,目前暂时从两本书入手,一本是《大话数据结构》,一本书《算法图解》,我先从《算法图解》,这本手开始学习吧~。如果你最近也在学习,可以关注一起学习,一起交流哦~二分查找先从一个问题思考,假设我们现在查找英语字典里的一K为开头的单词。如果我们从头开始翻,一直翻到K,那样太浪费时间了。通常我们都会直接翻开字典中间打开位置看看是什么字母的,如果我们翻到了J,K在J后面,那么我们继续往后翻就到了,比从头开原创 2020-08-17 22:00:22 · 373 阅读 · 0 评论