- 博客(27)
- 收藏
- 关注
原创 最新 请自取谢谢
import java.io.{File, FileWriter, PrintWriter}import org.apache.spark.rdd.RDDimport org.apache.spark.{SparkConf, SparkContext}import scala.collection.mutableimport scala.util.parsing.json.JSON/** * @author shkstart * @create 2020-08-11 22:34
2020-08-12 16:35:13 1595 10
原创 (迪杰斯特拉)Dijkstra算法详细讲解
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-A06n03gB-1594116879402)(C:\Users\DELL\AppData\Local\Temp\1594115399829.png)]迪杰斯特拉算法的朴素写法我们用这个图来模拟一下迪杰斯特拉算法,其实这个算法就是贪心加上广搜,理解了感觉非常简单 贪心体现在哪呢? 广搜又体现在哪呢?下面我们就来模拟一遍这个算法的朴素写法,写完朴素写法之后我们试着对其优化。此算法主要是解决,在一
2020-07-07 18:17:44 2154
原创 链路层的可靠交付和TCP可靠交付的区别
为了方便, 我们将主机和路由器和交换机均称为节点, 我们将沿着通信路径连接相邻节点的通信信道称为链路, 为了将一个数据报,从源主机传输到目的主机(端到端的传输) ,数据报必须通过沿着端到端路径上的**每一条链路**,在通过特定的链路时, 传输节点将次数据报封装在链路层帧中, 并将此帧发送到链路上,接受节点接受该帧然后提取出数据报。虽然网络层的任务是将运输层报文段从源主机端到端的传送到目的主机, 而链路层协议的任务是将网络层的数据报通过路径中的**单端链路节点到节点地传送**, 链路层的一个重要特点是数据报
2020-07-02 16:52:39 1708
原创 正则表达式匹配实现
<leecode 第十题>给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 ‘.’ 和 ‘*’ 的正则表达式匹配。 ‘.’ 匹配任意单个字符 ‘*’ 匹配零个或多个前面的那一个元素 所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。说明: s 可能为空,且只包含从 a-z 的小写字母。 p 可能为空,且只包含从 a-z 的小写字母,以及字符 . 和*。例如 1. aa 和 a*是匹配的 因为*可以匹配前面的字符0个或多
2020-06-30 13:06:39 424
原创 523. 连续的子数组和
<leecode 523题>给定一个包含 非负数 的数组和一个目标 整数 k,编写一个函数来判断该数组是否含有连续的子数组,其大小至少为 2,且总和为 k 的倍数,即总和为 n*k,其中 n 也是一个整数。示例 1:输入:[23,2,4,6,7], k = 6输出:True解释:[2,4] 是一个大小为 2 的子数组,并且和为 6解法一 : 前缀和的暴力搜索(O(n^2) )我们遍历每一个连续的序列, 判断他是否满足条件, 我们使用前缀和(这种解法相信不用多说就会的)publi
2020-06-23 21:18:03 224
原创 连续子数组的最大和
<leecode 第53题>输入一个整型数组,数组里有正数也有负数。数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。示例1:输入: nums = [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。解答:看到这种题目, 一目了然,我们第一想到的应该是穷举法, 复杂度为平方阶, 显然不是我们想要的,我们是否有时间复杂度为更小甚至为 O(n)的呢, 显然是有的**解法一: 分治算法**第一次
2020-06-23 13:57:37 422
原创 198. 打家劫舍
给定一个整数数组 nums ,你可以对它进行一些操作。每次操作中,选择任意一个 nums[i] ,删除它并获得 nums[i] 的点数。之后,你必须删除每个等于 nums[i] - 1 或 nums[i] + 1 的元素。开始你拥有 0 个点数。返回你能通过这些操作获得的最大点数。示例 1:输入: nums = [3, 4, 2]输出: 6解释:删除 4 来获得 4 个点数,因此 3 也被删除。之后,删除 2 来获得 2 个点数。总共获得 6 个点数。示例 2:输入: nums = [2
2020-06-21 17:13:10 140
原创 不同的二叉搜索树
<leecode 96题>给定一个整数 n,求以 1 … n 为节点组成的二叉搜索树有多少种?示例:输入: 3输出: 5解释:给定 n = 3, 一共有 5 种不同结构的二叉搜索树:1 3 3 2 1\ / / / \ 3 2 1 1 3 2/ / \ 2
2020-06-20 17:00:15 244
原创 最大以1为边界的正方形
<leecode 第1139题>给你一个由若干 0 和 1 组成的二维网格 grid,请你找出边界全部由 1 组成的最大 正方形 子网格,并返回该子网格中的元素数量。如果不存在,则返回 0。示例 1:输入:grid = [[1,1,1],[1,0,1],[1,1,1]]输出:9示例 2:输入:grid = [[0, 0,0],[0,1,1],[0, 1,1]]输出:4我们的思路如下设置一个dp三维数组, dp[grid.length + 1][grid[0].length +
2020-06-20 16:53:58 177
原创 堆排序
今天我们说堆排序基础常识 在一个二叉树里面 一个节点下标是i, 他的左儿子节点是 i * 2 + 1, 右儿子是 i * 2 + 2,他的父亲节点是 (i - 1)/2,所谓堆,就是任何一颗数, 他的父亲节点都比任何一个儿子节点都大, 递归子树也是我们看下面一个数组 [44, 15, 60, 31, 41, 17, 32, 46]画出二叉树就是 我们用两种方式进行堆排序1. 我们从零开始构造一颗最大堆, 就是将原数组中的数,循环遍历构造最大堆, 最大堆我们用一个跟原数组大小 相同的数组
2020-06-18 14:57:55 129
原创 普利姆(Prim)算法
普利姆算法主要是寻找图的最小生成树,最小生成树自己百度啦直接看普利姆算法的工作流程啊假设我们从A点开始生成最小生成树A的邻边为 : (A-C)[7] (A-G)[2] (A-B)[5]1. 从邻边中删选最小权值的结点,将其加入生成树, 所以我们就有两个节点 (A, G)2. 从(A, G)整体子图的邻边中筛选出一个最小权值节点(A-C)[7] (G-E)[4] (G-B)[3] (G-F)[6]3. 选出是B节点, 将其加入生成树 ,所以现在是 (A,B,G)三个节点了4.
2020-06-16 21:32:54 221
原创 chrome + IDM + 油猴插件 实现百度网盘大文件的高速下载
chrome + IDM + 油猴插件 实现百度网盘大文件的高速下载;这是一项非常成熟的技术,下载速度快, 不用担心被封1. 下载chrome 这个直接跳过 没有的话 就不用看了2. 下载idm软件 , 百度搜索 , 第一条基本就是官网下载地址, 进去下载就行了, 然后傻瓜式安装安装好之后 如图所示: 按顺序来看清出来记得是https:, 连接数写2个就行了, 这个代表下载时候线程多少,带宽大的话,可以写多些, 小的话就不用了至此,第二步完成3. 浏览器配置安装油猴插件链接:htt
2020-06-07 14:28:13 54189 28
原创 linux下的greenplum安装
1. 三台主机一台作为master节点 两台作为segment节点2. 配置网络, 修改主机名, 防火墙关闭,配置/etc/hosts文件(所有节点)3. 添加新用户组,新用户(三台节点)groupadd -g 530 gpadminuseradd -g 530 -u 530 -m -d /home/gpadmin gpadminmkdir /opt/modulechown -R...
2020-02-18 15:12:00 468
原创 第十届蓝桥杯--灵能传输
紧接着上一篇博文,我们谈一题前缀和的应用,这一题是第十届蓝桥杯第十届最后一题,难度没多大,就是有点难想到用前缀和.我们既然说了用前缀和那么我们用前缀和来分析一下:我们假设有一个序列 a1 a2 a3 这个序列的前缀和为 a1 a1+a2 a1+a2+a3如果 a2<...
2019-12-28 20:47:57 863
原创 前缀和
今天我们说一种思想,前缀和思想.我们就两种前缀和实例来说明.1.一维前缀和给定一堆数,找出任意区间的和.话不多说看代码public static void fun1() { Scanner scan = new Scanner(System.in); int count = scan.nextInt(); int[] sum = new int[count + 1]; ...
2019-12-27 18:48:17 131
原创 第十届蓝桥杯javaB组 迷宫
今天我们说的是 第十届蓝桥杯 第五题java B组第五题标题:迷宫【问题描述】下图给出了一个迷宫的平面图,其中标记为 1 的为障碍,标记为 0 的为可以通行的地方。010000000100001001110000迷宫的入口为左上角,出口为右下角,在迷宫中,只能从一个位置走到这个它的上、下、左、右四个方向之一。对于上面的迷宫,从入口开始,可以按DRRURRDDDR 的顺序通...
2019-12-19 18:41:33 686
原创 第六届蓝桥杯--牌型种数问题
今天说一道有意思的题目,第六届蓝桥杯第七题,话不多说,直接上题:小明被劫持到X赌城,被迫与其他3人玩牌。一副扑克牌(去掉大小王牌,共52张),均匀发给4个人,每个人13张。这时,小明脑子里突然冒出一个问题:如果不考虑花色,只考虑点数,也不考虑自己得到的牌的先后顺序,自己手里能拿到的初始牌型组合一共有多少种呢?一开始我也是用的dfs暴力搜索,跑了十来分钟没结果,就没跑了,这里代码就不贴...
2019-12-16 14:18:43 371 1
原创 课程表-算法设计
从今天开始 接下来的几个月 里我都在这里分享leecode解题思路和蓝桥杯历届试题的解题思路 。。。第一天先看一个dfs的题目 :现在你总共有 n 门课需要选,记为 0 到 n-1。在选修某些课程之前需要一些先修课程。 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们: [0,1]给定课程总量以及它们的先决条件,判断是否可能完成所有课程的学习?示例 1:输...
2019-12-15 13:16:53 875
原创 zookeeper之选举机制
好久都没有更新博客了!今天跟大家谈谈zookeeper的选举机制吧1> 半数机制,就是集群中半数以上的节点存活时,集群才可正常工作,所谓集群中有多少节点,相信就不要我多说了吧2>Zookeeper虽然在配置文件中并没有指定Master和Slave。但是,Zookeeper工作时,是有一个节点为Leader,其他则为Follower,Leader是通过内部的选举机制临时产生的3&g...
2019-10-18 22:17:08 190
原创 计算行列式的实现
这几天在学习线性代数 ,第一章节,行列式的相关问题,这里就行列式怎么计算给出实现(java实现)我的思路是这样的 使用dfs深度搜索算法进行搜索最简单的情况是2*2的行列式,据此我们可以得出代码:public static int fun(int[][] arr) { // 最简单的实现 if (arr.length == 2) { return arr[0][0] * ...
2019-09-05 17:10:31 966
原创 浅谈八大排序之希尔排序
其实希尔排序就是对插入排序的一个升级版,要想理解希尔排序,深入理解插入排序是重点,希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因DL.Shell于1959年提出而得名。希尔排序是记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个...
2019-08-22 18:05:50 270
原创 浅谈八大排序算法之选择排序
今天排序算法是,选择排序所谓选择排序,就是一次又一次的选择第一次对整个待排序数组进行筛选,得到其中最小的数,将其与第一个数进行交换第一次寻找代码基本如下设 数组为 int[] arr = {8,9,4,3,6}int minIndex = 0;for(int i = minIndex + 1; i < arr.length; i++){ if(arr[minIndex] &g...
2019-08-10 21:56:18 145
原创 浅谈八大排序算法之插入排序
所谓插入排序,就是将整个数组看成已排序好的部分,和未排序的部分,第一次的时候我们将数组额的第一个数看做已经排序好的序列,第一个数往后都是没有排序的序列,然后依次将没排序的数在已经排好序的系列中找到相应的位置上,使其再次成为排好序的序列,以此类推,直到为最后一个数找到相应的位置。话不多说直接上代码:插入排序算法有两种方式,第一种为交换插入法,第二种为移位插入法我们先看第一种:(交换插入法)...
2019-08-09 13:59:21 221
原创 浅谈八大排序算法之冒泡排序
接下来八天我谈谈我对八大排序算法的理解从今天开始算是第一天吧,今天说说冒泡排序算法,冒泡排序算法算是众多排序算法中稍微简单的一个了,但是对于冒泡排序,可能许多人代码写的来,但是理解的还是不够深入,今天我就来说说我对冒泡排序的看法吧所谓冒泡排序就是类似水泡上浮的过程,在冒泡排序中 我们需要两层嵌套循环,第一层循环 就是每一次将最大的数放到数组的最后一个位置,所以我们需要进行 数组的长度-1...
2019-08-06 19:48:45 337
原创 浅谈实例方法,类方法,静态方法
话不多说先贴代码:class Son(object): # 类属性 dad_name = "baba" def __init__(self, name): self.name = name def printf(self): print("我是:%s,我的爸爸是:%s" % (self.name, Son.dad_name)...
2019-07-10 14:10:31 170
原创 对python全局解释器锁GIL的理解
首先,在python中,多线程是假的多线程,前提你是用的C语言的python解释器,(cpython),在cpython中因为有全局解释器锁GIL的存在,使得python程序在同一时刻只会有一个线程在运行,如果你非要实现在同一时刻真正完成多个任务,请使用多进程,下面我们详细讲解GIL到底是个啥东西:1:GIL与python没有半毛钱关系,因为他是python解释器...
2019-07-09 16:56:12 299
原创 关于mysql连接中:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 问题的看法
**关于mysql连接中:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 问题的看法**:![问题描述](https://img-blog.csdnimg.cn/2019062609592367.PNG)**我认为出现此问题的原因是你的启动的mysql服务的目录错了,在我的电...
2019-06-26 10:12:42 237 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人