
数据结构与算法
小羊咩恩
为世间所有的美好而战
展开
-
基本数据结构总结--数组/链表/map/树
注: 图片来自网络数组数组的特性存储空间是连续的长度是不可变的只能存储 相同的类型(不严谨)可以通过下标访问数组的内容 a[10] 复杂度是O(1)每个元素的默认是为’零’值 0 null false -> 一个对象的基本的数据域的初始化也是这样的Student 类中的username属性 默认值我们的笔试题 动态规划 dp[][] 我们要会使用ArrayList自动扩容长度有限(int的最大值)默认初始容量是10扩容 1.5倍扩容的时机原创 2020-10-24 14:27:14 · 534 阅读 · 0 评论 -
怎样才算一个计算机知识体系完整的毕业生?
文章来源:编程指北(id:cs_dev)文章转载,已获授权!转发请联系原作者!!!前言为什么突然想写这个话题呢?最近有不少新关注的读者,在后台问:大学学 Java 和 C++ 哪个好找工作,学前端好还是后端好,该学 Vue 还是 React。。。仿佛看到了自己当年的模样,所以觉得有必要单独写一篇文章,单纯以一个计算机应届毕业生的身份聊聊,我认为大学四年,计算机科班学生应该学些什么,哪些才是重点。同样大学四年,为什么有些同学毕业就能成为大厂 Offer 收割机,各种 SP、SSP 拿到手软,有转载 2020-09-29 10:45:14 · 654 阅读 · 2 评论 -
面试收集与总结
b+树的优势[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-J3YruqF1-1598109330706)(https://gitee.com/liuhui12138/images/raw/master/img/@[8%HDEYMIEX5WQZX}}EJD8.png)]mvcc的作用MVCC多版本并发控制指的是 “维持一个数据的多个版本,使得读写操作没有冲突” 这么一个概念。仅仅是一个理想概念而在MySQL中,实现这么一个MVCC理想概念,我们就需要MySQL提供具体的功原创 2020-09-18 14:25:02 · 152 阅读 · 0 评论 -
八大排序算法的比较(参考了算法第四版)
基数排序 vs 计数排序 vs 桶排序这三种排序算法都利用了桶的概念,但对桶的使用方法上有明显差异:基数排序:根据键值的每位数字来分配桶计数排序:每个桶只存储单一键值桶排序:每个桶存储一定范围的数值八大排序算法总结各种排序性能对比如下:排序类型平均情况最好情况最坏情况辅助空间稳定性冒泡排序O(n²)O(n)O(n²)O(1)稳定选择排序O(n²)O(n²)O(n²)O(1)不稳定直接插入排序O(n²)O(n)O(n²)O(原创 2020-09-18 14:22:51 · 215 阅读 · 0 评论 -
砝码称重--java
问题描述:设有1g,2g,3g,5g,10g,20g的砝码各若干枚(其总重≤1000g),要求:输入a1 a2 a3 a4 a5 a6 (表示1g砝码有a1个,2g砝码有a2个,…20g砝码有a6个)输出:Total=N (N表示用这些砝码能称出的不同重量的个数,但不包括一个砝码也不用的情况)输入样例:1 1 0 0 0 0输出样例:Total=3,表示可以称出1g,2g,3g三种不同的重量个人的java解答,非标准答案,仅供参考。package co原创 2020-06-21 19:04:46 · 979 阅读 · 0 评论 -
空指针异常主要原因以及解决方案
空指针异常产生的主要原因如下:(1)当一个对象不存在时又调用其方法会产生异常obj.method() // obj对象不存在(2)当访问或修改一个对象不存在的字段时会产生异常obj.method() // method方法不存在(3)字符串变量未初始化;(4)接口类型的对象没有用具体的类初始化,比如:List a;会报错List a = new ArrayList();则不会报错了当...转载 2020-03-23 00:14:44 · 43535 阅读 · 1 评论 -
两数之和问题
(来自力扣的试题)给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]方法...转载 2019-11-19 17:38:47 · 350 阅读 · 0 评论 -
算法篇----罗马数字转整数(LeetCode13)
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12...原创 2019-10-08 15:25:06 · 196 阅读 · 0 评论 -
【LeetCode】706.设计哈希映射(探索题同)
不使用任何内建的哈希表库设计一个哈希映射具体地说,你的设计应该包含以下的功能put(key, value):向哈希映射中插入(键,值)的数值对。如果键对应的值已经存在,更新这个值。get(key):返回给定的键所对应的值,如果映射中不包含这个键,返回-1。remove(key):如果映射中存在这个键,删除这个数值对。示例:MyHashMap hashMap = new MyHashMa...转载 2019-09-24 17:43:46 · 263 阅读 · 0 评论 -
【LeetCode】705.设计哈希集合(LeetCode探索题实现哈希集合)
不使用任何内建的哈希表库设计一个哈希集合具体地说,你的设计应该包含以下的功能add(value):向哈希集合中插入一个值。contains(value) :返回哈希集合中是否存在这个值。remove(value):将给定值从哈希集合中删除。如果哈希集合中没有这个值,什么也不做。示例:MyHashSet hashSet = new MyHashSet();hashSet.add(1);...转载 2019-09-24 16:51:15 · 502 阅读 · 0 评论 -
队列的add,remove,poll,take等方法
队列(Queue)是一种先进先出(FIFO,First-In-First-Out)的线性表。在具体应用中通常用链表或者数组来实现。队列只允许在后端(称为 rear)进行插入操作,在前端(称为 front)进行删除操作。队列的操作方式和堆栈类似,唯一的区别在于队列只允许新数据在后端进行添加。add 增加一个元素如果队列已满,则抛出一个IIIegaISlabEepeplian异常...原创 2019-09-24 15:01:18 · 1859 阅读 · 0 评论