自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 递归实现最大公约数(辗转相除法)

首先说下最大公约数是个什么东西,我刚才已经忘记了不知道这是个什么东东了.最大公约数 指两个或多个整数共有约数中最大的一个。辗转相除法辗转相除法:辗转相除法是求两个自然数的最大公约数的一种方法例如,求(319,377):∵ 319÷377=0(余319)∴(319,377)=(377,319);∵ 377÷319=1(余58)∴(377,319)=(319,58);...

2019-03-23 11:12:16 4891

原创 图的bfs_迷宫(迷宫问题)

BFS宽度优先搜索:应用最多的就是走迷宫问题例如:给出一个5*5迷宫图0 1 0 0 00 1 0 1 00 0 0 0 00 1 1 1 00 0 0 1 0如上图的迷宫,入口,出口分别:左上角,右下角"1"是墙壁,"0"是通路求从左上角到右下角最短需要走多少步?问题分析:首先需要将每个点包装成一个节点 x,y,deep x:代表横坐标 y...

2019-03-18 20:36:02 601

原创 最短路径问题之Dijkstra算法

Dijkstra算法Dijkstra算法采用的是一种贪心的策略,声明一个数组d来保存源点到各个顶点的最短距离和一个保存已经找到了最短路径的顶点的集合:T,* 初始时,原点 s 的路径权重被赋为 0 (d[s] = 0)。若对于顶点 s 存在能直接到达的边(s,m),则把d[m]设为边(s,m)的权值* 同时把所有其他(s不能直接到达的)顶点的路径长度设为无穷大。初始时,集合T只有顶点s。...

2019-03-17 11:04:23 249

原创 最短路径问题之Bellman-ford算法

最短路问题:最短路:给定两顶点,在以这两个点为起始点和终点的路径中,边的权值和最小的路径。权值为点之间的距离bellman-ford算法思想: 首先先定义一个数组d ,数组的每个元素代表 起点s到每个顶点的距离 d[s] = 0,d[j]其余的为无穷,就是起点到自己的距离为0,到其他顶点的距离为无穷。假设以A为起点的话,初始化如下图然后开始遍历边集---ed...

2019-03-16 18:07:48 503

原创 倒置单链表

两种方法1、直接倒置2、利用栈来倒置一、直接倒置先看我画的一个图和大概想法代码部分public static void reverse(ListNode head) { ListNode p = null; ListNode temp = null; //先将原链表的第一个节点的next置为null 链表倒置后 原链表的第一个节点将变为倒置后的最后一个...

2019-03-15 20:22:52 3234

原创 求有环链表的环起点

给定一个有环链表 实现一个算法 返回环路的开头结点有环链表的定义: 在链表中某个节点的next的元素指向在它前面出现过的节点,则表明该链表存在环路import java.util.HashSet;/* * 给定一个有环链表 实现一个算法 返回环路的开头结点 * * 有环链表的定义: * 在链表中某个节点的next的元素指向在它前面出现过的节点,则表明...

2019-03-08 17:46:23 269

原创 删除单链表中倒数第K个节点

首先介绍一下我的思路: 首先设置两个节点 p1 ,p2 都指向head节点,然后先让p2向后移动,直到p1和p2的间隔恰好为K的时候,p1和p2一起向后移动,直到p2.next == null 的时候 那么p1所指的结点就是要删除的结点。public class deleteRepatNode { public static class Node { int val;...

2019-03-06 20:40:16 3402 3

原创 PAT L1-056 猜数字

import java.util.HashMap;import java.util.Scanner;import java.util.Set;public class caishuzi { public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.ne...

2019-03-06 20:24:54 240

原创 基于单链表实现的桶排序

桶排序1.问题描述:使用桶排序算法对控制台输入的数字进行排序2. 桶排序涉及到几个问题:1.桶的大小,这里我们可以根据输入的元素的个数来确定桶的大小2.怎么确定当前元素进入哪一个桶,这里我们使用到的是通过一个哈希函数来进行计算int index = (element * length) / (max + 1);element为当前元素的值,length为桶的大小,max为...

2019-03-03 17:22:21 443 1

原创 双链表的实现(首先了解单链表的原理)

双链表双链表其实和单链表区别不大,与单链表相比,双链表的每个节点是由 一个数据 两个指针组成的,两个指针分别指向前驱和后继。双链表与单链表相比的一个好处就是,双链表中的任意一个节点都可以比较容易的访问它的前驱和后继双链表的实现首先先介绍一下双链表的增加和删除一个节点功能的实现实现代码/* * 线性表的接口的定义 */public interface MyL...

2019-03-03 09:07:53 321

原创 单链表的实现

首先我说下我自己对链表的理解链表它就相当于一个火车 ,火车有很多节车厢(车厢就相当于链表中的节点);一个车厢包括 车厢里面的人或者东西 还有和下一节车厢相连的挂钩那么这就很形象的说明了 链表的每个节点 包括 data 和 next (数据和指向下一个节点的指针)单链表图示:单链表的实现:/* * 线性表的接口的定义 */public inter...

2019-03-02 21:14:35 148

原创 基于数组实现线性表

我们接下来实现一个简单的底层基于数组的一个线性表1.首先列出线性表的功能(增、删、改、查)使用接口来定义功能。2.实现接口,实现线性表的功能一、定义线性表的功能/* * 线性表的接口的定义 */public interface MyList { /* * 增加元素 */ void add(Object element); /* * 删除元素...

2019-03-02 18:49:04 1973

原创 数据结构中常用的接口

一、Comparable 当一个类的对象需要进行比较的时候,需要实现此接口,实现接口里面的CompareTo()方法二、Comparator该接口代表一个比较器使用该接口的常见场景1.排序 数据和集合的sort方法就是实现的该接口2.分组,当需要比较两个对象是否属于同一组的时候实现该接口三、Cloneable当你需要 对象可克隆的话,实现该接口四、Se...

2019-03-02 17:11:02 1348

空空如也

空空如也

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

TA关注的人

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