
数据结构与算法
向阳而生_cc
有志青年
展开
-
「漫画算法」第一章节
算法的两个衡量标准(因素) 时间复杂度 空间负责度 数据结构 定义:数据结构是数据的组织、管理和存储格式,其使用目的是高效地访问和修改数据 分类: 2.1、线性结构:数组、链表、栈、队列、哈希表 2.2、树:二叉树、二叉堆 2.3、图:多种多样 2.4、其它数据结构...原创 2020-08-16 23:14:43 · 198 阅读 · 0 评论 -
java实现leetcode第19题 —— 删除链表的倒数第 n 个节点
题目描述 给定一个链表,删除链表的倒数第n个节点,并且返回链表的头结点。 示例 给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5. 思路与代码 方法一:思路 1.1、先找出整个链表的...原创 2019-04-02 12:27:36 · 635 阅读 · 0 评论 -
java语言实现leetcode第三题 —— 寻找一串字符中,最长不重复的子串的长度
题目描述 给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。 示例 输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 思路以及代码 思路: 1.1、创建一个set集合,使用charAt();遍历字符串; 1.2、如...原创 2019-04-02 12:09:03 · 1465 阅读 · 1 评论 -
java语言实现Leetcode第二题
题目描述 给出两个非空的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0开头。 示例 输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:...原创 2019-04-01 18:31:41 · 813 阅读 · 3 评论 -
java语言实现二叉树
二叉树的定义与具体介绍可以参考:https://blog.youkuaiyun.com/qingtian_1993/article/details/80877487 创建二叉树的基本思想; 创建一个类,这个类中有根、数值、左孩子、右孩子; 数据可以通过数组赋值给树结构中的值,所以可以加一个链表级别的数据域,存放每个节点的数据; 给节点填值; 代码 public class Tr...原创 2019-04-05 23:43:14 · 376 阅读 · 0 评论 -
记2019年3月30日快手测试工程师(服务端)笔试编程题第二题
题目描述输入任意一位数,求它与斐波那契数列中某一位数相减之后绝对值最小,并打印这个差值;输入:15输出2斐波那契数列为。0,1,1,2,3,5,8,13,21,34,55……,当输入的值为15时,13-15的绝对值最小,其相减之后的绝对值为2,因此输出2. 思路描述 1、既然要与斐波那契数列有关系,那首先,可以创建一个斐波那契数列的函数;2、斐波那...原创 2019-03-31 16:24:59 · 1605 阅读 · 1 评论 -
用java语言使用递归于非递归方式实现快速排序
快速排序是大多数公司面试人员的必考题,今天将自己参考别人的思想所写的两种快速排序的方式; 快速排序使用场景:无序列表,时间复杂度为O(log2N); 快速排序的思想: 3.1、在一个数组中选取一个基准数,根据这个基准数将数组分为两组,一组为大于基准数,另外一组为小于基准数; 3.2、找出两个下标,一个为末尾下标,一个为开始下标; 3.3...原创 2019-03-24 18:06:40 · 1259 阅读 · 0 评论 -
二分查找法递归实现与非递归实现——java语言
1、二分查找法是我们常用的查找法,要使用它有一个前提条件:数组必须有序,递增或者递减;2、二分查找的优点:比较次数较少、查找速度快、平均性能好;3、二分查找的缺点:待查表为有序表,插入困难;由此延伸为顺序结构中,插入与删除比较困难;4、二分查找的思想:步骤一:首先确定整个查找区间的中间位置mid = (end - start)/2;步骤二:用待查关键字值与中间位置的关键字值进行...原创 2019-03-16 18:08:30 · 3302 阅读 · 0 评论 -
Java语言 —— 在一个整型数组中,当其中两个数的和最大时,求出这两个数的下标
背景:今天去CVTE面试,面试中出现了这道题目,不论结果如何,先学会这一道简单但是我还不会的题。题目:给定一个整型数组,当数组中两个数的和最大时,求这两个数的下标;题目解释:我的理解:找出数组中最大的两个数的下标;思路:1、定义一个数组arr[],数组的长度为你要找前几个最大的数,例如:本题目就是最大数和第二最大数,所以数组长度为2;2、先写一个循环,循环的次数为数组arr[]...原创 2019-03-08 20:56:14 · 929 阅读 · 0 评论 -
学习链表基础 —— (一)
此文不会从链表最基础的理论知识讲起,如果是真的小白,如果愿意看就看吧!链表是一种存储结构,它由两部分组成:数据和指针;以下是百度中对链表的定义:链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下...原创 2019-02-27 16:16:54 · 395 阅读 · 1 评论