
数据结构
文章平均质量分 52
Java Gosling
GO BIG OR GO HOME.
要么出众,要么出局。
展开
-
贪心算法---分发糖果(Hard)
文章目录分发糖果题目:思路:cpp实现:Java实现:TypeScript实现:分发糖果题目:老师想给孩子们分发糖果,有 N 个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分。你需要按照以下要求,帮助老师给这些孩子分发糖果:每个孩子至少分配到 1 个糖果。评分更高的孩子必须比他两侧的邻位孩子获得更多的糖果。那么这样下来,老师至少需要准备多少颗糖果呢?示例1:输入:[1,0,2]输出:5解释:你可以分别给这三个孩子分发 2、1、2 颗糖果。示例2:输入:[1,2,原创 2021-08-15 21:19:23 · 958 阅读 · 0 评论 -
贪心算法---分发饼干(Easy) 以及TypeScript sort()方法的排序问题
文章目录分发饼干题目:思路:Java实现:cpp实现:题外话:关于ts的sort()TypeScript实现:分发饼干题目:假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j] 。如果 s[j] >= g[i],我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。示例1:原创 2021-08-12 21:32:12 · 727 阅读 · 0 评论 -
Java代码实现KMP算法!!!
文章目录KMP是什么?KMP实现核心Brute-Force暴力求解KMP求解next数组实现KMP实现KMP是什么?KMP算法是一种改进的字符串匹配算法,大大提高了字符串匹配的效率。至于为什么叫KMP,因为这个算法是由Knuth、Morris和Pratt三位大佬发明出来的,取大佬们名字的首字母组成了算法的名字。KMP实现核心KMP算法之所以高效是因为它减少了模式串与主串的匹配次数,这一切都归功于next数组。next数组本质上是一个前缀表,里面存放着神奇的东西,它记录着当匹配失败时需要回退的大小。原创 2021-08-07 15:20:19 · 2528 阅读 · 0 评论 -
栈的重要应用---四则运算
文章目录概述中缀转后缀后缀表达式计算欢迎未来的大佬前来观看!!!概述栈的应用有很多,最最最最最重要的一个实现就是四则运算。对于四则运算的实现,首先需要了解两个概念:中缀表达式和后缀表达式。中缀表达式:通用的算术或逻辑公式表示方法。简单的来说就是我们从小到大所学的数学运算表达式都是中缀表达式,也可以称为标准表达式。例如8 + (5 - 2 ) × 3 + 6 ÷ 2。后缀表达式:为了更好的解决四则运算发明的一种不带有括号表达式,也称为逆波兰式(Reverse Polish notation,RP原创 2021-08-04 21:08:12 · 1572 阅读 · 0 评论 -
Java代码实现队列(数组和链表)
文章目录数组实现队列链表实现队列数组实现队列import org.apache.poi.ss.formula.functions.T;/** * @Author: jerrold * @Date: 2021/08/03 * @Version 1.0 * @description: 数组实现栈 */public class MyQueue { private int cnt;//当前队列长度 private int queueSize;//队列总长度 priva原创 2021-08-03 19:23:08 · 293 阅读 · 0 评论 -
Java代码实现栈(数组和链表)
文章目录数组实现栈链表实现栈数组实现栈import org.apache.poi.ss.formula.functions.T;/** * @Author: jerrold * @Date: 2021/08/02 * @Version 1.0 * @description: 数组实现栈 */public class MyStack { private int cnt; //当前栈的长度 private int stackSize; //栈的总长度 private原创 2021-08-02 22:33:35 · 630 阅读 · 0 评论 -
Java代码实现单链表存储
突然发现写多了TypeScript,使用this成了一个习惯哈哈哈哈哈~public class MyLinkedList<T> { //定义结点类 private class Node{ private T value; private Node next; public Node(T t,Node next){ this.value = t; this.next = nex.原创 2021-08-02 16:08:08 · 345 阅读 · 0 评论 -
Java代码实现线性表顺序存储
文章目录ElemType顺序表实现ElemTypeElemType类型要根据实际情况而定public class ElemType { private String name; private Object data; public String getName() { return name; } public void setName(String name) { this.name = name; }原创 2021-07-31 16:48:45 · 216 阅读 · 0 评论 -
算法复杂度分析
数据结构和算法本身解决的是“快”和“省”的问题,而执行效率是算法一个非常重要的考量指标。算法的复杂度就是它的一个衡量标准,尽管不同硬件的实际执行效率有所不同。算法的复杂度主要分为空间复杂度和时间复杂度。空间复杂度:算法在计算机执行时所需要存储空间的度量。通常使用S(n) = O(f(n))表示。主要包括三个部分:1.算法程序所占的空间2.输入的初始数据所占的空间3.算法执行过程中所需要的额外空间时间频度:算法中语句的执行次数,通常用T(n)来表示。时间复杂度:定性的描述算法的运行时间,考察输原创 2021-04-04 20:59:06 · 1939 阅读 · 0 评论