随笔分类 -  数据结构与算法

摘要:一、扑克牌中的顺子 题目描述 从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。 2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为 0 ,可以看成任意数字。A 不能视为 14。 示例 示例 1: 输入: [1,2,3,4,5] 输出: True 示例 2: 输 阅读全文
posted @ 2021-06-08 12:08 把苹果咬哭的测试笔记 阅读(60) 评论(0) 推荐(0) 编辑
摘要:一、旋转字符串 题目描述 给定两个字符串, A 和 B。 A 的旋转操作就是将 A 最左边的字符移动到最右边。 例如, 若 A = 'abcde',在移动一次之后结果就是'bcdea' 。 如果在若干次旋转操作之后,A 能变成B,那么返回True。 示例 示例 1: 输入: A = 'abcde', 阅读全文
posted @ 2021-06-02 12:58 把苹果咬哭的测试笔记 阅读(77) 评论(0) 推荐(0) 编辑
摘要:一、翻转二叉树 题目描述 翻转一棵二叉树。 示例 示例: 输入: 4 / \ 2 7 / \ / \ 1 3 6 9 输出: 4 / \ 7 2 / \ / \ 9 6 3 1 解题 # Definition for a binary tree node. # class TreeNode: # d 阅读全文
posted @ 2021-06-01 07:56 把苹果咬哭的测试笔记 阅读(62) 评论(0) 推荐(0) 编辑
摘要:一、在排序数组中查找数字 I 题目描述 统计一个数字在排序数组中出现的次数。 示例 示例 1: 输入: nums = [5,7,7,8,8,10], target = 8 输出: 2 示例 2: 输入: nums = [5,7,7,8,8,10], target = 6 输出: 0 解题 from 阅读全文
posted @ 2021-05-31 22:49 把苹果咬哭的测试笔记 阅读(52) 评论(0) 推荐(0) 编辑
摘要:一、多数元素 题目描述 给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 示例 示例 1: 输入:[3,2,3] 输出:3 示例 2: 输入:[2,2,1,1,1,2,2] 输出:2 阅读全文
posted @ 2021-05-31 07:47 把苹果咬哭的测试笔记 阅读(66) 评论(0) 推荐(0) 编辑
摘要:一、两数之和 题目描述 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回答案。 示例 示例 1: 阅读全文
posted @ 2021-05-31 00:00 把苹果咬哭的测试笔记 阅读(69) 评论(0) 推荐(0) 编辑
摘要:选择排序(Selection sort)是一种简单直观的排序算法。 它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。 比如说现在有个 阅读全文
posted @ 2021-05-04 23:35 把苹果咬哭的测试笔记 阅读(277) 评论(0) 推荐(0) 编辑
摘要:一、冒泡排序 1.介绍 冒泡排序基本思想: 通过对待排序序列从前向后(从下标较小的元素开始),依次比较相邻元素的值。 如果发现逆序则交换,让值较大的元素逐渐从前向后移动。 就像水底下的气泡一样逐渐向上冒。 2.理解 举例:将5个无序的数使用冒泡从小到大排序,[3, 9, -1, 10, -2]。 不 阅读全文
posted @ 2021-04-26 23:30 把苹果咬哭的测试笔记 阅读(209) 评论(0) 推荐(0) 编辑
摘要:简单来说,递归就是自己调用自己,在每次调用时传入不同的变量。递归有助于解决复杂的问题,同时让代码变得简洁。 在之前的文章中,对递归有过简单的介绍,现在进一步了解下递归的调用机制。 一、递归的调用机制 先上一段简单的递归调用的代码: package recursion; public class Re 阅读全文
posted @ 2021-04-23 00:05 把苹果咬哭的测试笔记 阅读(528) 评论(0) 推荐(0) 编辑
摘要:最近业务比较繁忙,又补了上个Q遗留的自动化接口case等等杂事,晚上用来系统学算法的时间比较少了。 另外,在steam又新买了个《地平线4》,刚玩也有点停不下来,哈哈。 但是,最近也并不是啥也没干。都说学以致用,之前看视频看书了解了链表二叉树这些,但是具体能干啥、怎么用, 还是两眼一抹黑。不过所幸得 阅读全文
posted @ 2021-04-11 00:46 把苹果咬哭的测试笔记 阅读(125) 评论(0) 推荐(0) 编辑
摘要:二叉树的遍历,同样也是为了访问到树中的每个结点(仅一次)。 不过,由于树的结构与之前的线性存储不同,从根结点开始,二叉树可以有多种的访问次序的选择。 按照我们通常的从左到右的习惯,常见的遍历次序有3种:前序、中序、后续。 一、什么是前序、中序、后序 为了方便说明,暂且我们把访问结点,就当做是打印输出 阅读全文
posted @ 2021-04-03 22:45 把苹果咬哭的测试笔记 阅读(952) 评论(0) 推荐(0) 编辑
摘要:树是另一种存储结构。跟之前说的线性结构不同,树是一种一对多的数据结构。 一、树 这里的树跟现实中的大树很像,有根有叶。但是现实的大树根部有很多根须,而这里的树只有一个根结点。 看图说话,了解下常用到的术语: 结点点:就是图里的一个个的圆圈了,也可以叫结点对象 根结点:顶部的结点A,数据结构的树只能有 阅读全文
posted @ 2021-03-31 12:25 把苹果咬哭的测试笔记 阅读(171) 评论(0) 推荐(0) 编辑
摘要:接着上一章继续来看单链表。 之前对单链表进行了遍历、插入的操作,本章继续用代码来实现修改以及删除。 一、单链表的修改 修改结点信息首先需要先找到对应的结点,接着上一章的代码,也就是英雄的排名no是不能修改的,要用来找结点。 其他的信息就可以动了。 另外,还要考虑到单链表中找不到对应要修改的结点的情况 阅读全文
posted @ 2021-03-26 10:08 把苹果咬哭的测试笔记 阅读(642) 评论(0) 推荐(0) 编辑
摘要:链表其实也就是 线性表的链式存储结构,与之前讲到的顺序存储结构不同。 我们知道顺序存储结构中的元素地址都是连续的,那么这就有一个最大的缺点:当做插入跟删除操作的时候,大量的元素需要移动。 如图所示,元素在内存中的位置是挨着的,当中有元素被删除,就产生空隙,于是乎后面的元素需要向前挪动去弥补。 正是因 阅读全文
posted @ 2021-03-18 00:20 把苹果咬哭的测试笔记 阅读(1908) 评论(0) 推荐(0) 编辑
摘要:在上一章中,使用了数组模拟了队列。但是留下的问题是,把数据取完后,再往里加数据就不行了。 一、假溢出 这是因为数组的末尾已经被占用了,入队会继续在数组后面增加,于是产生数组越界。 但是实际上,数组里是有空闲位置的,这种也可以叫“假溢出”。 为了解决“假溢出”的问题,于是乎有了循环队列。 既然数组后面 阅读全文
posted @ 2021-03-13 23:38 把苹果咬哭的测试笔记 阅读(580) 评论(0) 推荐(0) 编辑
摘要:一、什么是队列 队列是一个有序列表,可以用数组或者链表来实现。 遵循先入先出的原则,即:先存入队列的数据,要先取出。后存入的的数据,后取出。 看一张队列的模拟图,1,2,3表示同一个队列Queue。 在队列中有2个指针,front表示队首,rear表示队尾。 图1中表示队列里还没有数据,所以fron 阅读全文
posted @ 2021-03-11 00:24 把苹果咬哭的测试笔记 阅读(410) 评论(0) 推荐(0) 编辑
摘要:一、什么是稀疏数组 当一个数组a中大部分元素为0,或者为同一个值,那么可以用稀疏数组b来保存数组a。 首先,稀疏数组是一个数组,然后以一种特定的方式来保存上述的数组a,具体处理方法: 记录数组a一共有几行几列 记录a中有多少个不同的值 最后记录不同值的元素所在行列,以及具体的值,放在一个小规模的数组 阅读全文
posted @ 2021-03-09 23:07 把苹果咬哭的测试笔记 阅读(281) 评论(0) 推荐(0) 编辑
摘要:话说我一个测试人员为啥要学算法呢?说白了,都是生活所迫。 现在大厂面试哪个不考点算法,如果想过关,那就得刷题,但是一个小白,直接刷题只会被困难劝退。 所以,索性就学一下算法,不说能学的多深,但是总归不至于抓瞎。 言归正传,都知道数据结构是算法的基础。也就是说,虽然你学好数据结构不一定就能做好题,但是 阅读全文
posted @ 2021-03-09 00:42 把苹果咬哭的测试笔记 阅读(1451) 评论(3) 推荐(0) 编辑
摘要:在上一篇文章里,有看到一个简单算法题的2个解法,我们运用了复杂度分析来判断哪个解法更合适。 这里的复杂度,就是用于衡量程序的运行效率的重要度量因素。 虽然有句俗话“不管是白猫还是黑猫,抓到老鼠就是好猫”,这句话是站在结果导向的,没错。但是如果 有个程序要去处理海量数据,一个程序员写的要执行2天,而另 阅读全文
posted @ 2020-12-22 10:43 把苹果咬哭的测试笔记 阅读(3551) 评论(0) 推荐(2) 编辑
摘要:接触了代码,那么算法始终是绕不开的一个重点。 算法对于开发人员,在日常之中的作用很大,但是对于测试人员来说,实际编码中用到的似乎不是很多。 不过,现在大厂的测试开发的面试,算法是必考的,而且这也的确是你的代码功底的一项重要体现,学学没坏处。 关于算法的基础知识,之前自己也买过书,但是学习的断断续续的 阅读全文
posted @ 2020-12-17 18:58 把苹果咬哭的测试笔记 阅读(1235) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示