自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java常见知识记录(二)

Java反射1 反射机制fsh·概念:就是运行时动态的获取类的信息和操作类的方法和属性·获取Class对象方法:class.getClass(),Class.forName,ClassLoader.loadClass·Class类方法:getClassLoader,forName,getdeclareemethod,getdeclaredfield,getconstructor(decl...

2019-05-25 22:05:57 103

原创 重构节点拥塞控制

闲鱼瞎读系列Restructuring Endpoint Congestion Control文章理解:现在的拥塞控制算法是直接编译到内核中的,每次使用都需要对内核模块进行修改(也就是打开内核中相应模块,更换拥塞控制协议)并重新进行启动,这样就很麻烦。这篇文章就是做出一个拥塞控制平台(CCP),用户只需要将拥塞控制协议放在平台进行加载就能运行,不用再打开内核进行修改,这样就很方便,而且性能...

2019-05-20 20:39:41 883

原创 LeetCode

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,Given{1,2,3,4}, reorder it ...

2019-04-23 22:52:21 144

原创 Java知识记录(一)

java的四个基本特性抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。抽象只关注对象有哪些属性和行为,并不关注这些行为的的细节是什么。继承:继承是从已有类得到继承信息创建新类的过程。提供继承信息的类被称为父类(超类,基类);得到继承信息的类被称为子类(派生类)。继承让变化中的软件系统有了一定的延续性,同时继承也是封装程序中可变因素的重要手段。封装:通常...

2019-04-23 20:25:52 99

原创 数据库常见问题

1.数据库的三范式是什么?第一范式:表中的每个字段都不能再分;第二范式:满足第一范式并且表中的非主关键字字段都依赖于主键字段;第三范式:满足第二范式并且表中的非主关键字必须不传递依赖与主键字段;2.什么是数据库事务?事务具有四大特性:一致性,原子性,隔离性,持久性。数据库事务是指:几个SQL语句,要么全部执行成功,要么全部执行失败,银行转账就是事务的典型场景。数据库事务的三个常用指令...

2019-04-12 10:59:39 213

原创 计算机网络常见问题

1.为什么连接的时候是三次握手,关闭的时候却是四次握手?当服务端收到客户端的SYN连接请求报文后,可以直接发送SYN+ACK报文,其中ACK报文是用来应答的,SYN报文是用来同步的。但是当关闭连接时,当服务端收到FIN报文时,很可能并不会立即关闭socket,因为服务端此时可能还有报文没有发送完,所以只能先回复一个ACK报文,等服务端的报文全部发送完成后,再发送FIN报文,故需要四次握手。...

2019-04-12 10:58:55 129

原创 链表排序

用O(n logn)的时间复杂度来排序链表这里采用归并排序来实现单链表的排序,此外符合时间复杂度要求的还可以使用快速排序来求解/** * Definition for singly-linked list. * class ListNode { * int val; * ListNode next; * ListNode(int x) { * ...

2019-04-08 10:18:36 769

原创 椭圆曲线乘法ECDSA

ECDSA算法椭圆曲线乘法(又称为ECDSA)是密码学重要的非对称加密算法,同时在比特币系统中,私钥的生成使用的也是ECDSA算法。比特币使用了secp256k1标准定义的一条特殊的椭圆曲线和一系列数学常数。在讲解ECDSA算法之前,先了解一下计算机是如何实现乘法和除法的。计算机所能完成的基本操作是:+、- 和左移、右移。在计算机中所有的操作都是以二进制的形式在运行,那么对于数字的操作也同...

2019-04-07 22:03:07 3087 2

原创 非递归实现二叉树的先序遍历

非递归实现二叉树的先序遍历/** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */import java.util.*;...

2019-04-07 15:19:23 181

原创 二叉树的非递归后序遍历

采用非递归的方法进行二叉树的后序遍历思路:用栈作为辅助空间,先从根往左一直入栈,直到为空,然后判断栈顶元素的的右孩子,如果不为空且未被访问过,则从它开始重复左孩子入栈的过程,否则说明此时栈顶为要访问的节点(因为左右孩子都是要么为空要么已经被访问过了),出栈后访问即可,接下来再判断栈顶元素的右孩子,直到栈空。/** * Definition for binary tree * public ...

2019-04-07 11:21:58 447

原创 二叉树的构建

控制台和可视化界面输入,然后进行二叉树的构建import java.util.Scanner;/** * 功能:构造二叉树 * 说明: * 1.主函数输入模式有两种,BT参数 true 图形界面,false 控制台输入 * 2.构造树是按层次遍历结果输入的 如:ABCDE*F**GH */import javax.swing.*;import java.awt.*;impo...

2019-04-07 09:43:06 294

原创 Floyd算法

Floyd算法实现思想:Dijkstra是求单源最短路径,Floyd算法是用于求多源最短路径,算出来的是所有的节点到其余各节点之间的最短距离。首先初始化距离矩阵,然后从第一个点开始逐渐更新矩阵点值,dist[i][j]表示从i到j点的距离,第k次更新时,判断dist[i][k]+dist[k][j]与dist[i][j]的大小,如果前者小,则更新这个值,否则不变。public class F...

2019-04-06 21:55:29 700

原创 Dijkstra算法

Dijkstra算法代码中有详细解释public class MatrixUDG { /* * 邻接矩阵对应的结构体 */ private int mEdgNum; //边的数量 private char[] mVexs; //顶点集合 private int[][] mMatrix; //邻接矩阵 private static f...

2019-04-06 11:02:18 172

原创 堆排序

堆排序思想:1、将无序序列构建成一个堆,根据升序降序需求选择大顶堆或者小顶堆;2、将堆顶元素与末尾元素交换,将最大元素“沉”到数组末端;3、重新调整结构 ,使其满足堆定义,然后继续交换堆顶元素与当前末尾元素,反复执行调整+交换步骤,直到整个序列有序。import java.util.Arrays;public class HeapSort { /* * 堆排序 ...

2019-04-03 22:12:36 87

原创 快速排序

快速排序思想:1,、在待排的元素中任取一个元素作为基准(通常选第一个元素,但最好的选择是从待排元素中随机选取一个作为基准),称为基准元素。2、将待排序的元素进行区分,比基准元素大的元素放在他的右边,比其小的元素放在它的左边。3、对左右两个分区重复以上步骤直到所有的元素都是有序的public class QuickSort { /* * 快速排序 */ p...

2019-04-03 11:10:03 70

原创 找出最大公约数为1的三个数

题目描述第一行输入要输入的数的个数,第二行输入整数,中间用空格隔开。输出最大公约数为1的组合数。import java.util.*;public class Main { public static void main(String[] args) { Scanner input = new Scanner(System.in); int lengt...

2019-04-03 10:03:25 835

原创 归并排序

归并排序归并排序的思想:将待排序序列分为两部分,对每部分递归的应用归并排序,在两部分都排好序后进行合并。代码:public class Solution { /* * 归并排序 */ static void funMergerSort(int[] array) { if (array.length > 1) { ...

2019-04-03 09:58:24 76

原创 平面上同一直线上点的最大数目

给出一个二维的平面,找出位于同一条直线上的点的最大数目思路:已知两点确定一条直线,那么针对这两个点确定一条直线的斜率,再计算其余的点与该点的斜率,判断斜率是否相同,这样的思路属于暴力破解,需要注意的一点是可能存在点数重叠的情况,这时需要做一下判断。代码:/** * Definition for a point. * class Point { * int x; * i...

2019-03-31 22:39:22 208

原创 利用反波兰法求值

[“2”, “1”, “+”, “3”, “*”] -> ((2 + 1) * 3) -> 9[“4”, “13”, “5”, “/”, “+”] -> (4 + (13 / 5)) -> 6思路:利用栈来解决此类问题非常的方便,遍历字符串,取得的数字进行相应的栈处理,最终得到结果import java.util.*;public class Solution ...

2019-03-28 20:52:18 120

原创 最小二叉树的深度

最小二叉树的深度给出一个二叉树,找出其最小的深度思路:这个题和最大的二叉树深度有所不同,因为二叉树的最大深度只需将左子树和右子树的深度进行最大值的比较即可,但是求其最小深度时需要注意如果直接进行最小深度比较的话会返回0,会干扰题的判断,因此判断的条件也会多了一些。public class Solution { public int run(TreeNode root) { ...

2019-03-26 21:19:20 208

原创 最大二叉树的深度

最大二叉树的深度给出一个二叉树,找出其最大的深度,深度是指从二叉树的根节点到叶子节点的节点数Given binary tree [3,9,20,null,null,15,7],return its depth = 3.思路:最简单的方式就是递归,递归求得根节点左子树的深度和右子树的深度,再进行比较得到最大的深度。class Solution { public int maxD...

2019-03-26 21:00:06 74

原创 对称树

对称树给出一个二叉树,检查是否是一个镜像(即是否关于中心对称)this binary tree [1,2,2,3,4,4,3] is symmetric1/ 2 2/ \ / 3 44 3思路:这种类似的题考察的仍然是树的遍历,树的遍历都已用递归来实现(也可以使用队列),要深刻理解递归的含义class Solution { public boolean isSym...

2019-03-25 22:48:12 345

原创 冒泡排序

冒泡排序思想:对于一个长度为n的无序的数组,进行n次比较,每次次排序将最大的元素移动至数组的最后面,这样对数组进行一次遍历后所有的元素都会排序完成package com.wang;public class bubbleSort { public static void bubble(int[] nums) { for (int i = 0; i < nums.length; ...

2019-03-25 10:29:34 109

原创 LeetCode-100-判断是否为相同树

判断是否为相同树题:给出两个二叉树,写一个函数判断是否相同(结构和对应的值都相同)Input:1 1/ \ / \2 3 2 3[1,2,3], [1,2,3]Output: trueInput:1 1/ \2 2[1,2], [1,null,...

2019-03-22 21:21:36 140

原创 LeetCode-88-合并已排序的数组

合并已排序的数组给出两个已经排序好的数组nums1和nums2,将nums2合并到nums1中成为一个排序好的数组。nums1的长度大于或者等于m + nInput:nums1 = [1,2,3,0,0,0], m = 3nums2 = [2,5,6], n = 3Output: [1,2,2,3,5,6]思路:这道题本质上就是一个排序的题,可以先将nums2中的数组元...

2019-03-22 20:45:38 169

原创 阿里2019暑假实习生面试3/19

阿里电话面试加写代码阿里区块链岗位实习生,面试时间:1个小时左右,半小时了解情况,半小时写代码前面先自我介绍,介绍一下自己的教育背景,然后根据简历问了项目和一些区块链的知识,重点还是一些最常见的区块链系统,例如比特币,以太坊。比特币系统:1)POW是如何运行的(过程);2)你对POW有什么看法;3)区块的结构;4)交易的生成过程;5)密钥对的生成算法(ECDSA过程);以太坊系统...

2019-03-21 21:50:47 521 1

原创 2019暑期华为实习生面试3/20

题一:实现一个只有加减法的计算器(0-99)思路:在一个字符串中,可能出现“+”或者“-”,因此我想到用java的分割符,然后扫描一遍字符串,计算出结果代码:package brush;/* * 题目描述:输入0-9的数字和+,-进行计算 * 输入字符串保证:1,不会包含除0-9和算术运算符之外的字符 * 2,长度不为0 * 3,不以+或者-开始;不以+或-结束 * 4,不会出现...

2019-03-21 19:56:09 554

原创 记录十四——从已排序的链表中删除重复项

删除已排序链表中的重复项给出一个已排序的链表,删除所有重复的元素保证每个元素只出现一次Input: 1->1->2Output: 1->2Input: 1->1->2->3->3Output: 1->2->3这道题是一道简单题,考察的就是对链表的指针操作,需要加强这方面的练习class Solution { publ...

2019-03-20 17:05:15 108

原创 记录十三——爬楼梯

爬楼梯一个n级的阶梯,每次只能爬一步或者两步,问有多少种爬法。Input: 2Output: 2Explanation: There are two ways to climb to the top.1 step + 1 step2 stepsInput: 3Output: 3Explanation: There are three ways to climb to th...

2019-03-20 11:33:01 174

原创 记录十二——实现Sqrt(x)

实现Sqrt(x)计算一个整数x的平方根,x是一个非负的整数Input: 4Output: 2Input: 8Output: 2Explanation: The square root of 8 is 2.82842…, and since the decimal part is truncated, 2 is returned.思路:因为输入的数的限制是非负的整数,又是int类...

2019-03-20 10:41:48 180

原创 记录十一——删除已排序数组的重复项

删除已排序数组中的重复项给定一个已排序的数组号,删除重复项,使每个元素只出现一次,并返回新的长度。不要为另一个数组分配额外的空间,您必须使用O(1)额外内存修改输入数组。Given nums = [1,1,2],Your function should return length = 2, with the first two elements of nums being 1 and 2...

2019-03-16 11:18:14 64

原创 记录十——最大子数组

最大子数组题:给出一个整数数组nums,找到一个有最大和的连续子数组(至少包含一个值),并返回最大值例:Input: [-2,1,-3,4,-1,2,1,-5,4],Output: 6Explanation: [4,-1,2,1] has the largest sum = 6.思路:这是我研究生复试机试的最后一题,只是多了一些输出,要求输出最大子数组的起始点索引和末尾索引。虽然中间没...

2019-03-12 09:25:57 131

原创 记录九——搜索插入位置

搜索插入位置题:给出一个排序好的数组nums和一个目标值target,如果数组中存在该目标值,返回该目标值的索引。若数组中没有该目标值,返回该目标值应该插入位置的索引。Input: [1,3,5,6], 5Output: 2Input: [1,3,5,6], 2Output: 1Input: [1,3,5,6], 7Output: 4Input: [1,3,5,6], 0O...

2019-03-11 23:58:40 86

原创 记录八——实现strStr()功能

实现strStr()功能题:找出目标字符串在原字符串首次出现的位置Input: haystack = “hello”, needle = “ll”Output: 2Input: haystack = “aaaaa”, needle = “bba”Output: -1【注】:当目标字符串是空时,应该返回什么呢,这是一个非常适合在面试中问到的问题。本题中当目标字符串是空时,返回0,这与...

2019-03-11 23:51:40 122

原创 记录七——移除元素

移除元素题:给出一个数组nums和一个值val,移除数组中包含有val值得元素,返回新数组的长度。(注:不分配额外的数组空间,且通过O(1)的空间复杂度来对这个数组进行操作,返回的虽然是数组的长度,但要保证数组的内容变化)例:Given nums = [3,2,2,3], val = 3,Your function should return length = 2, with the fir...

2019-03-11 23:40:42 91

原创 记录六——括号匹配

有效括号给出一个仅仅包含‘(’,‘)’,‘[’,‘]’,‘{’,‘}’的字符,判断输入的字符串是否是有效的,空字符串是有效的。例:input: “()” output: trueinput: “()[]{}” output: trueinput: “(]” output: false思路:括号匹配是数据结构栈的典型应用,首先将第一个元素进行入栈,然后将后面的元素与栈顶元素进行比较,如...

2019-03-04 09:25:48 84

原创 记录五——最长相同前缀

最长相同前缀写一个函数,在一个字符串数组中找出最长的相同前缀字符串,如果没有相同前缀,返回一个空字符串“”。例:input: [“flower”,“flow”,“flight”] output:“fl”input:[“dog”,“racecar”,“car”] output:""我的思路:因为要找出数组中所有元素的公共最长子串,所以必要遍历所有的元素,然而,数组中的每个元素都是字符串,对字...

2019-03-03 16:22:28 806

转载 java——异常

【注】此内容来自菜鸟驿站笔记中,方便自己查看如图可以看出所有的异常跟错误都继承与Throwable类,也就是说所有的异常都是一个对象。从大体来分异常为两块:如图可以看出所有的异常跟错误都继承与Throwable类,也就是说所有的异常都是一个对象。从大体来分异常为两块:1、error—错误 : 是指程序无法处理的错误,表示应用程序运行时出现的重大错误。例如jvm运行时出现的OutOfMem...

2019-03-02 22:05:08 74

原创 记录四——回文数字

回文数字判断一个整数是否是回文数字例:input:121,output:trueinput:-121,output:fasle限制:不将数字转化为字符串思路:遇到此类题,回文也是相当于数字翻转,和字符串一样,同样可以用栈来解决,但是本题有限制,依据记录二中的题,运用通常的数字翻转来解决,唯一要考虑的是数字进行翻转后可能会出现溢出的情况,所以可以1)将其转换为long型进行处理,2)只回文...

2019-02-28 00:28:35 157

原创 记录三——数字翻转

记录三题:给出一个32位的有符号位整数,将整数进行翻转。(整数的存储范围在[-231,231-1],若翻转后的整数溢出,则返回0)例:input:123,output:321input:-123,ouput:-321input:120,output:21思路:做这道题的时候,很长时间都没想到用栈,发现自己的数据结构真是白学了。涉及到翻转问题,应该首先想到的就是用栈来解决。将整数类型转换为...

2019-02-26 10:34:10 554 1

空空如也

空空如也

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

TA关注的人

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