自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(143)
  • 资源 (3)
  • 收藏
  • 关注

原创 golang中基于http 和unix socket的通信代码实现(服务端基于gin框架)

目录一、问题背景二、什么是unix socket三、原生的unix socket通信方式四、http+unix socket通信,服务端基于gin框架五、demo的实现移步到项目中六、结论七、后续工作一、问题背景实习所在公司的A、B两个应用部署在同一台机器上,之前是采用http://127.0.0.1:xxx进行调用,协议选用tcp。而对于同一台机器的进程间通信来说,tcp协议为了确保传输的可靠性带来了一些不必要的负担,因此计划用unix domain socket“取代”tcp。此外采用此种方式也方便

2020-07-30 15:33:20 6664 3

原创 操作系统基础知识整理

这里写目录标题1、进程的状态1. 创建:操作系统为进程分配资源,初始化PCB2、就绪 :万事俱备,只欠cpu3、运行:占有cpu,并在cpu上运行4、阻塞:为了提高cpu利用率,需要各种资源准备好才能开始,而不能占用cpu以后再去获取资源。这里的资源,比如说打印机等外部设备5、终止:回收进程资源,撤销PCB2、进程状态转换3、操作系统层面是怎么实现原子操作的?4、管道通信中半双工的含义?5、操作系统为什么要引入线程?6、系统吞吐量7、什么是饥饿?7、调度算法1、先来先服务FCFS2、短作业优先3、高响应比优

2020-05-09 21:52:05 811

原创 springboot通过访问者ip获取城市地址信息,并在网站后台记录

这里写目录标题前言前言实现步骤:4、程序代码另外踩的坑有如下:前言最近想在自己的博客网站上记录访问者的ip地址和城市等信息。在网上尝试了几种办法都有瑕疵,后来通过腾讯位置服务提供的接口调用成功实现。前言最近想在自己的博客网站上记录访问者的ip地址和城市等信息。在网上尝试了几种办法都有瑕疵,后来通过腾讯位置服务提供的接口调用成功实现。实现步骤:1、去腾讯位置服务网站进行开发者注册2、通...

2020-05-07 13:25:47 5064 4

原创 基于socket和序列化的简单rpc框架实现

这里写目录标题一级目录二级目录三级目录1、什么是RPC框架?2、http也能实现远程过程调用,为什么还要使用rpc框架?3、Springboot使用rpc的样例4、一个简单的rpc框架实现一级目录二级目录三级目录1、什么是RPC框架?RPC:Remote Procedure Call,即远程过程调用,通俗来讲就是调用远程应用(服务器)上的方法。而rpc框架就是使得我们调用远程服务器上的方...

2020-05-05 17:09:00 276

原创 各大厂面经及答案整理(一)

面经题目及答案整理1、聚簇索引与主键的关系?参考:2、Tcp和udp能共用一台主机的同一个端口吗,为什么?3、Redis rdb子进程在持久化过程中又产生了新的数据怎么保证数据完整性?1、聚簇索引与主键的关系?聚簇索引默认是主键,如果表中没有定义主键,InnoDB会选择一个唯一的非空索引代替(“唯一的非空索引”是指列不能出现null值的唯一索引,跟主键性质一样)。如果没有这样的索引,InnoD...

2020-05-04 16:52:22 1455

原创 mysql中行锁、间隙锁以及next-key lock 是什么?为了解决什么问题?

1、行锁:我们知道myisam默认是表锁,锁的粒度较大,因此适用读多写少的场景。在innodb中默认是行锁,每次增删改一行数据,会将该行锁住。后续的线程操作改行数据会被阻塞,直到持有行锁的线程释放锁。2、间隙锁:间隙锁的出现是为了在innodb的可重复读隔离级别下,解决幻读问题产生的。间隙锁会封锁该条记录相邻两个键之间的空白区域,防止其它事务在这个区域内插入、修改、删除数据;所谓间隙是将数据...

2020-05-04 12:04:27 1229

原创 LeetCodeNo.162寻找峰值(二分查找)

注意题目中假定的是nums[-1]==nums[n]=负无穷,解法见注释class Solution { public int findPeakElement(int[] nums) { if(nums.length==0) return 0; int left=0,right=nums.length-1; int...

2020-03-05 22:00:01 136

原创 LeetCode No.81搜索旋转排序数组II

class Solution { public boolean search(int[] nums, int target) { if(nums==null||nums.length==0) return false; return search(nums,0,nums.length-1,target); } priv...

2020-03-05 19:11:21 108

原创 LeetCode No.74搜索二维矩阵

class Solution { public boolean searchMatrix(int[][] matrix, int target) { if(matrix==null||matrix.length==0||matrix[0].length==0) return false;//注意这里要判断列的数目是否为0 int le...

2020-03-05 11:53:00 181 1

原创 LeetCodeNo.29两数相除

class Solution { public int divide(int dividend, int divisor) { if (dividend == Integer.MIN_VALUE && Math.abs(divisor) == 1) { return divisor>0?Integer.MIN_VALUE:Int...

2020-03-05 10:54:44 106

原创 LeetCode No.300 最长上升子序列(动态规划)

class Solution { public int lengthOfLIS(int[] nums) { if(nums==null||nums.length==0) return 0; int[] beforeCounts=new int[nums.length]; for(int i=0;i<nums.length;i++){ ...

2020-03-05 00:50:52 105

原创 LeetCode No.287 寻找重复数

class Solution { public int findDuplicate(int[] nums) { int left=1,right=nums.length-1; int mid=0; while(left<right){ int count=0;//这个count一定要放这里面,重置,不能放到whi...

2020-03-05 00:12:07 86

原创 剑指offer 判断数组是否为二叉搜索树的后序遍历

思路:观察二叉搜索树的后序遍历,会发现**根节点位于数组的最后**,并且以根节点为分界,**会出现数组左边的数字比根节点小,右边比它大;**因此只需判断出每一个子数组是否呈现这种规律,若是都满足,则为二叉搜索树。否则不是。还有一种特殊情况,就是数字呈现一边倒,如序列1,2,3,4,5 仍为二叉搜索树另外数组小于三的任意组合,都满足二叉搜索树另外注意找分界点的代码写法,用两个for循环,...

2020-02-28 14:42:37 128

原创 剑指offer 二叉树的层序遍历

二叉树的层序遍历 利用队列来做import java.util.ArrayList;import java.util.Queue;import java.util.LinkedList;/**public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null;...

2020-02-28 13:04:02 109

原创 剑指offer 栈的压入和弹出序列

思路就是:将数组A[i]依次压入栈,若栈顶元素和b[j]相等,将栈顶元素出栈j++,这里用一个while循环判断,若不相等,则继续入栈,直到A为空,判断栈是否为空。import java.util.ArrayList;import java.util.Stack;public class Solution { public boolean IsPopOrder(int []...

2020-02-28 11:35:59 98

原创 牛客网 求水平值总和最大值

牛牛举办了一次编程比赛,参加比赛的有3*n个选手,每个选手都有一个水平值a_i.现在要将这些选手进行组队,一共组成n个队伍,即每个队伍3人.牛牛发现队伍的水平值等于该队伍队员中第二高水平值。一个队伍三个队员的水平值分别是3,3,3.那么队伍的水平值是3一个队伍三个队员的水平值分别是3,2,3.那么队伍的水平值是3一个队伍三个队员的水平值分别是1,5,2.那么队伍的水平值是2为了让比赛更有看...

2020-02-27 21:02:17 345

原创 剑指offer 顺时针打印矩阵

这道题难在这个while里面的if判断,这里很精秒import java.util.ArrayList;import java.util.List;public class Solution { public ArrayList<Integer> printMatrix(int [][] matrix) { ArrayList<Integer>...

2020-02-26 21:32:49 79

原创 剑指offer 树的子结构

/**public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; }}*/public class Solution { publi...

2020-02-26 19:58:51 57

原创 剑指offer 反转链表

/*public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}*/public class Solution { public ListNode ReverseList(ListNode head) { ...

2020-02-26 15:43:45 86

原创 剑指offer 链表中倒数第k个节点

还可以用快慢指针去做,这里是先求出链表长度,再找出节点/*public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}*/public class Solution { public ListNode Fi...

2020-02-26 14:52:41 71

原创 剑指offer 调整奇数顺序使奇数位于偶数前面

思路是遍历原数组,碰到偶数,就将偶数个数len++,然后将偶数放入新数组,碰到奇数,就将这个奇数在原数组中向前移动len位,遍历完后,前半部分已经都是奇数,然后将新数组中的偶数依次放到原数组中奇数后面即可。public class Solution { public void reOrderArray(int [] array) { int[] array2=new in...

2020-02-26 14:02:56 140

原创 剑指offer 数值的整数次方

注意指数可以为0和负数import java.lang.Math;public class Solution { public double Power(double base, int exponent) { if(exponent==0) return 1; double result=base; int e...

2020-02-26 13:35:56 107

原创 剑指offer 矩形覆盖(同斐波那契数列解法)

public class Solution { public int RectCover(int target) { if(target<=2) return target; int pre=1,next=2,result=0; for(int i=3;i<=target;i++){ ...

2020-02-26 12:41:55 89

原创 剑指offer 变态跳台阶

一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。f(n)=f(n-1)+f(n-2)+...+f(1)+1;因此f(n+1)=f(n)+f(n)=2f(n)public class Solution { public int JumpFloorII(int target) { if(target==0...

2020-02-26 11:44:49 83

原创 剑指offer 两个栈实现队列

import java.util.Stack;public class Solution { Stack<Integer> stack1 = new Stack<Integer>(); Stack<Integer> stack2 = new Stack<Integer>(); public void push(i...

2020-02-25 20:13:10 86

原创 剑指Offer 重建二叉树

/** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */import java.util.Arrays;public c...

2020-02-25 19:55:24 75

原创 剑指offer 从尾到头打印链表

/*** public class ListNode {* int val;* ListNode next = null;** ListNode(int val) {* this.val = val;* }* }**/import java.util.ArrayList;import ...

2020-02-25 11:52:55 61

原创 剑指offer 替换空格

public class Solution { public String replaceSpace(StringBuffer str) { StringBuffer result=new StringBuffer(); for(int i=0;i<str.length();i++){ char c=str.charAt(i); ...

2020-02-25 11:27:01 60

原创 剑指offer 二维数组的查找

思路:从左下或右上开始,这里是右上public class Solution { public boolean Find(int target, int [][] array) { if(array==null) return false; int i=0,j=array[0].length-1; while(i&l...

2020-02-25 11:13:26 55

原创 连不上阿里云服务器docker中的zookeeper解决方法

在使用虚拟机中安装docker时,是可以连上zookeeper的,换成了阿里云服务器连不上了。解决方法如下:在阿里云官网控制台页面找到如下页面:克隆一条规则,填写zookeeper默认暴露端口号2181/2181,然后重启程序,ok了...

2020-02-19 22:03:27 2503

原创 恍然大悟:解决Node Sass does not yet support your current environment: Windows 64问题

网上的博客有很多相关的解决办法:都是说先卸载node-sass,然后重新安装。但是还是失败。原因就是:这里重新安装node-sass不是在cmd默认路径下,而是在本地前端项目的cmd路径下去安装(不然是仍会报错的,这里弄了好久)然后就成功启动了。...

2020-02-18 14:58:06 805 1

原创 LeetCodeNo.139单词拆分

class Solution { public boolean wordBreak(String s, List<String> wordDict) { boolean[] dp=new boolean[s.length()+1];//表示 s 中以 i - 1 结尾的字符串是否可被 wordDict 拆分 dp[0]=true; ...

2020-02-04 19:53:14 102

原创 leetcode No.120三角形最小路径和

//自底向上的解法class Solution { public int minimumTotal(List<List<Integer>> triangle) { //加一行是为了方便dp数组最后一行的赋值(dp最后一行就是三角形列表最后一行) int[][] dp=new int[triangle.size()+1][triangle...

2020-02-03 20:38:16 110

原创 LeetCode No.64最小路径和

class Solution { public int minPathSum(int[][] grid) { int m=grid.length; int n=grid[0].length; int[][] dp=new int[m][n]; //dp[i][j]代表到当前位置的最小路径和 for(int i=0;i<m...

2020-02-01 19:03:49 89

原创 LeetCode No.63不同路径2

class Solution { public int uniquePathsWithObstacles(int[][] obstacleGrid) { if(obstacleGrid[0][0]==1) return 0; //入口为1 则结果为0 int m=obstacleGrid.length; int n=obstacleGrid[...

2020-02-01 18:43:31 79

原创 LeetCodeNo.4两个有序数组的中位数

思路就是合并两个有序数组,然后再在新数组上进行计算中位数time:98.38内存:27.87class Solution { public double findMedianSortedArrays(int[] nums1, int[] nums2) { int len=nums1.length+nums2.length; int[] nums3=n...

2020-01-30 12:25:45 132

原创 leetcode No.977 有序数组的平方

这里作为私有代码保存地代码如下:class Solution { public int[] sortedSquares(int[] A) { int len=A.length; if(len==0) return null; int[] square=new int[len];//len是长度 不...

2020-01-05 16:04:31 108

原创 leetcode No.9 回文数

class Solution { public boolean isPalindrome(int x) { if(x < 0 || (x % 10 == 0 && x != 0)) { return false; } int n=x; int a=0,rec=0; ...

2020-01-05 16:04:08 80

原创 leetcode No.14 最长公共前缀

class Solution { public String longestCommonPrefix(String[] strs) { int len =strs.length; if(strs==null||len==0||strs[0].equals("")) return ""; if(len==1) return strs[0]; ...

2020-01-05 16:03:20 69

原创 leetcodeNo.38 报数

//思路就是 从字符串开头一直读取几个几,如21 就是一个2一个1就是1211,2231就是两个2一个3一个1,就是221311//时间复杂度14.89%,空间6.87%class Solution { public String countAndSay(int n) { String previousStr="1"; String currentStr...

2020-01-05 16:02:52 72

自动检测和仪表中的共性技术.pdf(徐科军版)

绝版书的超清晰pdf文件,徐科军版,清华大学出版社,在打印店扫描出来的

2019-06-02

(超清晰)复杂系统建模理论与方法.pdf 陈森发编著,东南大学出版社

这本书已经绝版,这是从打印店扫描出的十分清晰的pdf文件,供下载

2019-04-10

基于matlab的手写数字识别系统

这学期上模式识别课程,做了这个手写数字识别的作业,放到上面来赚一点点积分

2019-04-10

空空如也

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

TA关注的人

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