- 博客(27)
- 资源 (9)
- 收藏
- 关注
原创 克鲁斯卡尔算法
克鲁斯卡尔算法基本思想 先构造一个只含 n 个顶点、而边集为空的子图,把子图中各个顶点看成各棵树上的根结点,之后,从网的边集 E 中选取一条权值最小的边,若该条边的两个顶点分属不同的树,则将其加入子图,即把两棵树合成一棵树,反之,若该条边的两个顶点已落在同一棵树上,则不可取,而应该取下一条权值最小的边再试之。依次类推,直到森林中只有一棵树,也即子图中含有 n-1 条边为止。时间复杂度为为O(e^
2017-08-23 18:56:10 586
原创 prim算法
prim算法 最小生成树算法 算法步骤 输入:一个加权连通图,其中顶点集合为V,边集合为E; 初始化:Vnew = {x},其中x为集合V中的任一节点(起始点),Enew = {},为空; 重复下列操作,直到Vnew = V: 在集合E中选取权值最小的边C++代码#include<iostream>using namespace std;#include
2017-08-23 13:32:09 564
原创 重写与重载的区别
重写与重载的区别重写重写必须继承,子类重写父类的方法重写的方法名,参数数目相同,参数类型兼容(返回类型没有要求)重写的方法的访问权限要大于等于父类的访问权限重写不可以抛出父类没有抛出的异常,可以抛出运行异常class Parent{protected char test(int a) { System.out.println("Parent"); return 'c';}
2017-08-19 20:34:34 533
原创 IP地址
IP地址A, B, C, D, E类地址A类(0) 0.0.0.0 - 127.255.255.255 B类(10) 128.0.0.0 - 191.255.255.255C类(110) 192.0.0.0 - 223.255.255.255D类(1110) 224.0.0.0 - 239.255.255.255 (组播地址)E类(1111)
2017-08-19 18:44:57 753 1
原创 TCP三次握手 四次挥手
TCP三次握手 四次挥手预备知识TCP的标志位SYN(请求建立连接)ACK(确认)PSH(传送)FIN(结束)RST(重置)URG(紧急)TCP是面向连接的字节流协议,是全双工的。三次握手例图: 第一次握手:客户端发送一个连接请求(SYN位置为1) 第二次握手:服务端接收到连接请求,发送确认(SYN位置为1, ACK位置为1) 第三次握手:客户端接受到服务端的确认,发
2017-08-19 16:52:25 5875 13
原创 binary-tree-maximum-path-sum
binary-tree-maximum-path-sum题目描述 Given a binary tree, find the maximum path sum. The path may start and end at any node in the tree. For example: Given the below binary tree,
2017-08-17 18:14:31 259
原创 word-ladder
word-ladder题目描述 Given two words (start and end), and a dictionary, find the length of shortest transformation sequence from start to end, such that: Only one letter can be changed at a time
2017-08-17 10:21:22 427
原创 longest-consecutive-sequence
longest-consecutive-sequence题目描述 Given an unsorted array of integers, find the length of the longest consecutive elements sequence. For example, For example,Given[100, 4, 200, 1, 3, 2],
2017-08-16 11:59:29 371
原创 sum-root-to-leaf-numbers
sum-root-to-leaf-numbers题目描述 Given a binary tree containing digits from0-9only, each root-to-leaf path could represent a number. An example is the root-to-leaf path1->2->3which represents the nu
2017-08-16 11:47:17 373
原创 surrounded-regions
surrounded-regions题目描述 Given a 2D board containing’X’and’O’, capture all regions surrounded by’X’. A region is captured by flipping all’O’s into’X’s in that surrounded region For example,
2017-08-15 18:13:25 266
原创 palindrome-partition-ii
palindrome-partition-ii题目描述 Given a string s, partition s such that every substring of the partition is a palindrome. Return the minimum cuts needed for a palindrome partitioning of s. For
2017-08-15 16:44:08 480
原创 palindrome-partitioning
palindrome-partitioning题目描述 Given a string s, partition s such that every substring of the partition is a palindrome. Return all possible palindrome partitioning of s. For example, given s
2017-08-15 16:37:40 302
原创 word-break-ii
word-break-ii题目描述 Given a string s and a dictionary of words dict, add spaces in s to construct a sentence where each word is a valid dictionary word. Return all such possible sentences. Fo
2017-08-15 10:27:19 368
原创 word-break
word-break题目描述 Given a string s and a dictionary of words dict, determine if s can be segmented into a space-separated sequence of one or more dictionary words. For example, given s =”leetcod
2017-08-15 10:26:31 313
原创 single-number
single-number题目描述 Given an array of integers, every element appears three times except for one. Find that single one. Note: Your algorithm should have a linear runtime complexity. Could you
2017-08-14 16:00:06 296
原创 reorder-list
reorder-list Given a singly linked list L: L 0→L 1→…→L n-1→L n, reorder it to: L 0→L n →L 1→L n-1→L 2→L n-2→… You must do this in-place without altering the nodes’ values. For example,
2017-08-13 17:51:37 377
原创 binary-tree-postorder-traversal
binary-tree-postorder-traversal Given a binary tree, return the *postorder*traversal of its nodes’ values. For example: For example: Given binary tree{1,#,2,3}, 1\2/3 return
2017-08-13 11:39:49 445
原创 迪杰斯特拉算法
迪杰斯特拉算法 Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。注意该算法要求图中不存在负权边。算法过程 初始时,S只包含源点,即S={v},v的距离为0。U包含除v外的其他顶点,即:U={其余顶点},若v与U中顶点u有边,则对如下连通图求单源点路径C++代码#includ
2017-08-12 17:27:02 430
原创 归并排序
归并排序 归并排序,是一种效率十分高的排序算法,并且它是稳定的,时间复杂度为O(n*log(n)) 归并排序主要的思想就是分治(问题转换为子问题)算法过程 假设我们有一个没有排好序的序列,那么首先我们使用分割的办法将这个序列分割成一个个已经排好序的子序列。然后再利用归并的方法将一个个的子序列合并成排序好的序列。分割和归并的过程可以看下面的图例。 时间复杂度 总时间
2017-08-11 20:29:10 264
原创 堆排序
堆排序知识点 堆分为大顶堆,小顶堆。 大顶堆的定义:每个节点的值都不大于其父节点的值 小顶堆的定义:每个节点的值都不小于其父节点的值 左边大顶堆, 右边小顶堆 堆排序是一种选择排序,时间复杂度是O(n*log(n)), 也是一种不稳定的排序方法 从图中可以看出大顶堆根节点的值最大 对全数组A[n]构建大顶堆 A[0
2017-08-11 19:36:20 306
原创 快速排序
快速排序 通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列,快速排序的时间复杂度为O(n*log(n)),最坏的情况是O(n^2),快速排序是不稳定的复杂度的证明 最优情况 在最优情况下,Partition每次都划分得很均匀,如果排
2017-08-11 12:06:04 557 1
原创 插入排序
插入排序 插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。C++代码:#include<iostream>using namespace std;int insertSort(int *a, int len) { int i = 1, j = 0; int
2017-08-11 10:06:42 231
原创 Arrays静态方法
Arrays静态方法 在java的编程实践中,在很多地方会用到Arrays的静态方法,总结一下,以便翻阅sort方法版本一 sort(T [] a);一般数字按大小排序, 字母按照字典序排序(小写字母大于大写字母)版本二 sort(T[] a,Comparator<? super T> c) 可以自己自定义按照那种标准进行排序, 通过实现Comparator接口的compare函数实
2017-08-05 20:24:26 806
原创 整数中1出现的次数
整数中1出现的次数题目 求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数。思想 解法链接代码public class Solution { publi
2017-08-02 11:08:29 445
原创 链表中环的入口节点
链表中环的入口节点题目 一个链表中包含环,请找出该链表的环的入口结点。思想 初始化两个指针fast, low, 开始都指向头结点, fast每下走两步, low每下走一步,如果 链表中有环,则两节点一定会相遇。如果没有环,则fast或者fast.next会先走到空 start: 头结点到相遇节点的距离 step: low指针在环中走过的距离 Dis
2017-08-01 20:36:57 252
原创 不用加减乘除做加法
不用加减乘除做加法题目 写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号思想 不能用加减乘除,只好用位运算了 两数异或可以求出两数不带进位的和(7 ^ 10 = 13) 两数相与再左移一位可以求出两数的进位( (7 & 10) << 1 = 4) 循环直到进位为0,既可以出结果代码public class Solution {
2017-08-01 18:02:53 227
原创 逆序对
逆序对题目 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007思想 归并排序以书上{7, 5, 6 , 4} 为例分解和归并过程分解过程不多说,更归并排序一样,合并过程有点不同其两个指针开始是指向两边最大元素,如果p1 > p2,那么相
2017-08-01 10:50:15 350
决策树代码。机器学习实战代码
2019-02-28
PAT advanced 1-50题代码
2016-09-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人