数据结构与算法
文章平均质量分 62
数据结构与算法
闲言博客
记录成长,记录学习!
展开
-
leetCode-删除排序数组中的重复项
题目说明 给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。说明:为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。你可以想象内部操作如下:// nums 是以“引用”方式传递的。也就是说,不对实参做任何拷贝int len = removeDupli转载 2021-12-04 20:43:10 · 202 阅读 · 0 评论 -
LeetCode 算法成长之路
LeetCode 算法,递归,二分查找,动态规划,贪心算法,八皇后,背包问题,二叉树,红黑树,B+数,数组,链表原创 2021-12-04 10:53:05 · 4476 阅读 · 5 评论 -
递归-反转单链表 -图解
核心代码代码执行过程1.在右边 第25行代码上打断点,debug运行程序,进入到reverse()方法1.1通过debug 可以看到,这个链表里面一共有4个结点1.2 reverse 无参数方法中做安全性校验如果不为空,则调用重载的reverse(Node n)方法。因为需要从头节点的 下一个结点开始反转,需要把头节点的下一个结点传入过去(也是1结点)。2.进入到reverse(Node n)方法,首先进行条件判断,判断当前结点是否是最后一个结点。当前链表的顺序是1 2 3原创 2021-07-22 00:06:53 · 927 阅读 · 20 评论 -
数据结构与算法-自定义二叉树API
类名BinaryTree构造方法名public BinaryTree()成员内部类public class Node;结点类成员方法public void put(Key key, Value value);往树中插入一个键值对 public Node put(Node x, Key key, Value value);在指定树x上,添加一个键值对,并返回添加后的新树public Value get(Key key);根据key 返回value; public int ...原创 2021-07-21 18:35:39 · 221 阅读 · 1 评论 -
数据结构与算法-使用栈《逆波兰表达式求值问题》
问题描述中缀表达式:3*(17-15)+18/6给定一个只包含加减乘除四种运算的逆波兰表达式的数组表示方式,求出该逆波兰表达式的结果。String[] notation = {"3", "17", "15", "-", "*", "18", "6", "/", "+"};解决思路创建一个栈对象用于存储操作数遍历逆波兰表达式数组,得到每一个字符判断该字符是不是 运算符,如果不是,则压入栈中如果是运算符,则从栈中弹出两个操作数:o1 o2使用该运算符计算o1和o2,然后将计算的结构压入栈原创 2021-07-18 22:50:21 · 327 阅读 · 3 评论 -
数据结构与算法——学习笔记汇总
目录前言主要内容1.ArrayList-add(E e)方法源码分析2.自定义顺序表API3.自定义单向链表API4.自定义双向链表API5.使用栈《解决括号匹配问题》鸡汤前言前言 众所周知:程序=数据结构+算法 《数据结构与算法》这门课很难,学起来很枯燥,但是在整个计算机科学领域、在工作、面试、生活中都会用到。我决定利用整个暑假的时间一定要把《数据结构与算法》这门课程拿下,也为2021年11月份的软考打下基础。不拿下《数据结构与算法》誓不罢休,此博客为证。这条博客持续更新!主要内容 内原创 2021-07-17 23:56:46 · 793 阅读 · 17 评论 -
数据结构与算法-使用栈《解决括号匹配问题》
问题描述 给定一个字符串,里边可能包含"()"小括号和其他字符,请编写程序检查该字符串的中的小括号是否成对出现。 例如: "(上海)(长安)":正确匹配 "上海((长安))":正确匹配 "上海(长安(北京)(深圳)南京)":正确匹配 "上海(长安))":错误匹配 "((上海)长安":错误匹配代码如下输出结果(北京(上海)()) 括号匹配是否正确:true测试代码public class T1{ public static vo原创 2021-07-17 23:32:51 · 465 阅读 · 5 评论 -
数据结构与算法-自定义双向链表API
类名MyTowWayLinkeList构造方法名public MyTowWayLinkeList()成员内部类public class Node;结点类成员方法public void insert(T t) ;往线性表添加一个元素 public void insert(int i,T t);在指定位置添加一个元素public void clear();清空整个线性表; public int length();获取线性表数据个数(长度)public T remove(in...原创 2021-07-16 18:51:25 · 188 阅读 · 8 评论 -
数据结构与算法-自定义单向链表API
类名MyLinkedList构造方法名public MyLinkedList()成员内部类public class Node;结点类成员方法public void insert(T t) ;往线性表添加一个元素 public void insert(int i,T t);在指定索引处添加一个元素public void clear();清空整个顺序表; public int length();获取顺序表数据个数(长度)public T remove(int index);...原创 2021-07-16 12:07:35 · 294 阅读 · 6 评论 -
数据结构与算法-自定义顺序表API
目录API设计API设计类名MyArrayList构造方法名public MyArrayList () public MyArrayList (int capacity)成员方法public void insert(T t) ;往顺序表添加一个元素 public void insert(int i,T t);在指定索引处添加一个元素public void clear();清空整个顺序表; public int length();获取顺序表数据个数(长度)public T原创 2021-07-15 10:31:19 · 395 阅读 · 5 评论 -
数据结构与算法-ArrayList-add(E e)方法源码分析
查看ArrayList的初始化 在创建ArrayList 集合的时候,如果不指定集合的长度,就走空参构造方法,在构造方法内部为 elementData属性赋初始值(DEFAULTCAPACITY_EMPTY_ELEMENTDATA) public ArrayList() { this.elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA; } 可以看到DEFAULTCAPACITY_EMPTY_ELEMENTDATA .原创 2021-07-14 14:16:11 · 344 阅读 · 18 评论