自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 链表 —— 快慢指针

心血来潮...问题:求一个链表倒数第k个数的值?方法:用快慢指针。既然要求倒数第k个值,就先设两个结点,第一个结点先走k步,第二个结点在头结点处,当第一个结点走到头时,第二个结点的值就是倒数第k个数的值!结点说明:public class ListNode { int val; ListNode next; ListNode(int x) { val = x; }}算法:public int kthToLast(ListNode head

2020-06-03 09:18:17 219

原创 Java —— 手动实现最大堆

具体实现:堆这种数据结构可以理解为二叉堆,也就是二叉树的的结构,要满足以下两个条件:1)是完全二叉树(最后一行的叶子节点的父结点总是没有右结点)2)父结点总是大于它的两个子节点动态数组保存,从下标0开始,这样索引就是:左孩子: 2*i + 1右孩子: 2*i + 2父结点:(i - 1)/2代码:1、先是类中的基础变量和一些简单的方法,主要是辅助方法public ...

2020-03-22 17:25:53 251

原创 Java —— 手动实现基于二分搜索树的集合

具体实现手写实现Set集合感觉挺复杂的,但是在看过底层源码以及相关视频后就有了一些思路:定义一个Set接口,这个接口中包含了要使用的方法 编写二分搜索树类,这个类里面就是Set接口里面的方法 实现二分搜索树集合类,主要是@Override二分搜索树中的方法步骤对应代码如下:一、Set接口public interface Set<E> { /** ...

2020-03-18 18:58:05 155

原创 数据结构 —— 二分搜索树

一、二分搜索的时间复杂度二分搜索是一种高效的数据搜索,同时也可以高效的管理数据。高效就高效在它的结构,比如要找一个树中的数据,跟根一比,看大还是小,仔细想想,是真的很省时间,所以可以推断出它的时间复杂度一般在(平衡)到O(n) (不平衡)之间,所以像Java底层源码使用的是红黑树,一种自平衡(AVL)的树,这样它的时间复杂度就是了。二、各种功能的实现因为二分搜索一般是不包含重复元素的...

2020-03-17 09:27:11 199

转载 Linux —— 在VMware中安装Ubuntu

我的安装过程是参照下面这篇博客的,记录的非常详细,赞地址:https://blog.csdn.net/u013142781/article/details/50529030如果需要VMware密匙可以私信发

2020-03-11 19:53:44 74

原创 JVM内存模型

Java运行时数据区域在一个Java程序运行的时候,Java虚拟机在看不到的地方工作着,它主要是管理内存的而且是自动的,所以平常并不需要人为干预,虽然看不见它但是必须去了解JVM,因为在遇到内存泄漏和内存溢出的时候如果不知道它的运作原理那么就干等着,无从下手。如图,JVM管理的内存包括这几个数据区域上面这个就是JVM内存模型,有五个区域,而在这些区域中有的又能在自身基础上划分更细...

2020-03-10 16:25:15 257

原创 Linux —— 进程优先级和nice值

一、进程的详细信息通过命令ps -l可以查看当前正在运行的进程的详细信息,关于进程的参数如下:C:CPU占用百分比 PRI:优先级 NI:nice值 TIME:进程占用CPU时间二、PRI和NI把主要进程分为两种:1、I/O消耗型进程:I/O消耗型进程如字面意思一样,轮到它的时候会把大部分时间消耗在I/O请求和等待I/O上,真正使用CPU的时间很少。2、处理器消耗型进程...

2020-03-07 21:33:52 477

原创 安装MySQL以及数据库的一些基础知识

mysql -u root -p

2020-03-04 20:15:37 123

原创 高效排序方法之一 —— 归并排序

一、归并排序归并排序属于分治算法的一种,所谓分而治之,本质就是讲一个大规模的问题分解为若干个规模较小的相同子问题。大致过程如下:将待排序元素分成大小大致相同的两个子序列 对两个子序列进行排序 将排好序的有序子序列进行合并,得到最终的有序序列二、算法图解 用一张图就可以对这个过程有一个清晰的了解了~通过...

2020-02-29 21:29:38 411

原创 二分搜索法

一、问题描述:给定n个元素,这些元素是有序的,从数组中查找特定的元素x。个人觉得二分法搜索是分治法里面最简单的一个搜索算法了,就是设置一个下界low和上界high,然后再设一个指针mid ( mid=(low+high)/2 ),然后随着每次搜索mid会在两个区间之间( [low,mid-1] 和 [mid+1,high] )进行移动,对应的,low或者high也要相应地改变位置。**要注意这...

2020-02-27 17:57:14 494

原创 Java —— 继承的一些基本问题

一、继承性是Java中一个重要的特性,起到了承上启下的作用,既是多态的基础又能让我们对之前学过的基础有一个清晰的轮廓,接下来就简单聊一聊继承。Tip: 利用继承性可以实现类结构的重用,通俗的来说就是通过继承,我们可以扩充一个类已有的功能,需要通过这样的语法格式来完成:*class 子类 extends 父类{…};*子类是可以拥有父类的内容的,而在大多数正常情况下,子类都要比父类复杂一些(因为...

2020-02-25 17:53:01 143

原创 贪心算法 —— 背包问题

一、问题描述:有一堆宝物,用车去装载,一次运完(不能超过车的最大承重),要求运走价值高的宝物这里因为物体是可分割的,所以我采用贪心算法。由题目可以得出,应该选取性价比最高的物品,即:价值/重量要最大才行。所以思路就出来了,每次选择性价比高的物品,如果其重量小于车的载重就装,如果大于就分割,部分装入。话不多说,直接上代码。二、代码如下:#include <iostream>#...

2020-02-24 10:28:42 3194

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除