- 博客(11)
- 收藏
- 关注
原创 leetcode 刷题日记 - 数组篇(1) -- 双指针问题
leetcode 283题:题目:移动零给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明: 必须在原数组上操作,不能拷贝额外的数组。 尽量减少操作次数。题目链接:https://leetcode-cn.com/problems/mov...
2019-11-07 10:02:41 759
原创 leetcode 刷题日记 - 数组篇(2) -- 基本算法变形
递归排序思想leetcode 88 题:合并两个有序数组题目:* 给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。** 说明:*** 初始化 nums1 和 nums2 的元素数量分别为 m 和 n。* 你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 ...
2019-11-07 09:04:44 797
原创 算法笔记(二)线性排序:一百万数据量如何进行快速的排序?
线性排序:时间复杂度为 O(n)是线性的 不涉及元素之间的比较操作(但是对排序之间的数据比较苛刻)常见的三种:1.桶排序:将要排序的数据分到几个有序的桶里,然后由对桶内的数据再单独进行排序,排序完,再将每个桶里的数据按照顺序依次取出,最后组成的数据就是有序的了。可对数据范围比较大的数据依次划分范围桶(比较适合用于外部排序 内存有限不将数一次性加载到内存中 先将数据存储到外部磁盘中)2.计...
2019-10-30 23:29:46 3262
原创 面经连接池 - 多线程原理(二)线程安全 篇
序言:想用好多线程,只知道多线程是如何工作的还是不够,更多的我们应该知道如何多线程如何实现 “线程安全”线程安全定义:代码封装了所有必要的正确性保障手段(如互斥同步等),令调用者无需关心多线程问题,更无需采取任何措施来保证多线程的调用。线程安全会造成的问题:多个线程同时读写一个共享资源并没有任何同步措施时,会导致脏数据或者其他不可见的问题。共享数据(主内存中可操作的数据)的 “...
2019-10-30 19:59:35 1022
原创 面经连接池 - 线程原理(一)JMM(Java内存模型) 篇
如果要理解多线程问题首先要了解多线程是如何工作的主内存与工作内存:线程,工作内存,主内存三者交互关系图:主内存:可以线程共享的变量(会出现竞争关系) 包括实例字段 静态字段 数组对象的元素(此处与Java中还有所不同)(不包括局部变量与方法参数)变量必须在主内存中产生工作内存:该线程使用到的变量的主内存副本拷贝,线程对变量的所有操作(读取赋值)都必须在工作内存中进行,不能直接读...
2019-10-28 21:07:00 729
原创 面试必知必会的 == equals() 和HashCode()区别
引言:通常面试官问 == 和 equals 区别是什么? 有些人会回答 == 判断对象是否是同一个对象判断引用是否相同 equals 判断值是否相同==:用于判断两个对象的地址是不是相同。判断是不是同一个对象(基本数据类型比较的是值,引用类型比较的是内存地址)equals: 情况1:可以看到底层代码 如果类对equals(Object obj) 未进行覆盖时 与 == 是一样的...
2019-10-28 14:20:53 1507 1
原创 面经连接池 - 集合框架(二)Map 篇
HashMap (桶位数组 + 链表/红黑树 、线程不安全)(Java1.8以前 桶位数组+链表)HashMap<K, V> 根据 K 的HashCode 来存储对应 V 大多数情况可以直接定位到它的 V 底层为哈希表访问时间复杂度为O(1) 但是遍历顺序却不确定 不是有序的(存储位置与插入时间无关) HashMap最多只允许一条记录的键 为 null ,允许多条记录的值为nu...
2019-10-28 00:06:06 580
原创 数据结构笔记(一)
小提示: 不要"完美主义"把握好度线性表: 数组 栈 队列 链表 哈希表 树: 树 堆 图: 图 线性数据结构数组把数据码成一排进行存放 (在Java中对其存放元素有严格要求必须是相同数据类型) 数组最好应用于"索引有语义"的情况...
2019-10-26 16:48:12 596
原创 算法笔记 ( 一 )
什么是时间复杂度:一个算法流程中,常数操作数量的指标什么常数时间操作: 大O描述的是算法的运行时间和输入数据的关系 一个操作 如果和数据量没有关系,每次都是固定时间内操作,叫做常数操作。如做加减操作,数组寻址 O(1)一次常数操作的平均时间 例如:for循环取出一个数及数组遍历数组寻址都为常数操作 O(log...
2019-10-26 15:49:26 625
原创 面经连接池 - 集合框架(一)List 篇
ListList是Java非常常用的数据集合框架。List是有序的Collection(对映下标与插入顺序有关)Java List一共有三个实现类:ArrayList、LinkedList、Vector(不常用,渐渐被取代)一.ArrayList(数组、随机访问、不同步 线程不安全)ArrayList 是最常用的List实现类,底层通过数组(是一串连续的内存地址)实现,所...
2019-10-26 11:58:11 898
原创 Linux常用命令
虚拟机(软件):通过调用系统接口模拟出一台机器查看目录结构 ls list :列出 ls -l :列出当前目录下的文件信息 ls -al :列出当前目录下的文件信息 (包括隐藏文件,特殊目录) ls -alt :按时间列出当前目录下的文件信息 (包括隐藏文件,特殊目录) ll /bin/:列出根目...
2019-10-25 23:57:28 555
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人