自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 资源 (7)
  • 收藏
  • 关注

原创 leetcode每日一题刷题笔记

ps: 上研究生了,有段时间没刷leetcode了,今日起重新养成刷题的好习惯,为两年后找工作打下坚实基础,刚把得啊少年,不能退缩。2022年2月26日:2016. 增量元素之间的最大差值 简单给你一个下标从 0 开始的整数数组 nums ,该数组的大小为 n ,请你计算 nums[j] - nums[i] 能求得的 最大差值 ,其中 0 <= i < j < n 且 nums[i] < nums[j] 。返回 最大差值 。如果不存在满足要求的 i 和 j ,返回 -

2022-02-26 21:12:05 153

原创 为endnote添加markdown笔记

为endnote添加markdown笔记众所周知endnote是一款强大的文献管理工具,但它却偏偏没有没有提供做笔记的功能。有人说可以利用Research Notes字段来书写笔记,但它只能简单的写txt,不支持图片和公式,而且丑的不行。谁用谁知道,这个字段只适合写一些简短的描述,并不适合做笔记。所以我想在endnote里添加markdown,它可以插入图片,公式,并且书写简单,长得好看,而且最重要的是,笔记是依附于endnote的文献记录的,由endnote来管理,endnote迁移图书馆的时候也能

2021-09-30 09:44:58 1374

原创 并查集的模板,优化与使用场景

并查集基本使用请参考oi-wiki常规一个不错的封装好的并查集写法class UnionFind{ public int[] fa; public UnionFind(int n){ fa = new int[n]; for(int i=0;i<n;i++)fa[i]=i; } public int find(int x){ if(fa[x]==x)return x; fa[x]=find(x);//路径压缩 return fa[x];

2021-02-14 22:35:26 256 4

原创 剑指offer 6 旋转数组的最小数字

采用二分法的思想采用二分法,主要是mid与一个target比较,普通的二分查找target是给出来的,但有时没有明确的target,比如这道题,这时一般选择端点当作target,即l或r。端点的选择问题:对与这道题,应该选择r,如图所示,倾斜的实线代表序列上升的趋势。选择r:当mid>r时,显然寻找的min在mid右边。所以区间放缩:l=mid+1。当mid<r时,min可能在mid的左边,但min也可能就是mid(因为min也小于r),所以区间放缩为:r=mid。当m

2020-06-22 00:23:21 145

原创 leetcode 124二叉树中最大路径和

思路这道题的解法很巧妙,我要着重介绍这道题。明确几个概念路径:这里的路径指的是,从树中的某个节点到另一个节点,包括终点和起点,仅有一个点也算是一条路径。路径和:这里的路径和指的是,路径中所有节点值的和。最大路径和:顾名思义,就是所有路径中最大的那条路径。明确经过一个节点的路径的三种情况这里我参考了官方题解里的说明。经过一个点的路径有三种情况(当然这里指的是一般情况)。left----root----parent(拐向父节点);right----root----parent(拐向父节点

2020-06-21 23:25:04 118

原创 剑指offer 4 重建二叉树

先序与中序遍历的数列是可以确定一棵树先序遍历数列的第一个节点必然是根节点。而该节点在中序遍历数列的中间,其左边的数列是左树的先序遍历序列,右边的是右树的中序遍历数列,由此递归。我这里用了一个hashmap,存放了中序遍历的值和下标的映射,以减少在递归过程中在中序序列中遍历寻找根节点下表的时间消耗。思路很简单,代码如下:/** * Definition for binary tree * public class TreeNode { * int val; * TreeNod

2020-06-19 23:21:11 122

原创 leetcode 125验证回文串

讲真,这道简单难度的题没什么好说的,直接上代码class Solution { //第一次写的 public boolean f1(String s){ char[] clist = new char[s.length()]; int index = 0; char c; for(int i=0;i<s.length();i++){ c = s.charAt(i);

2020-06-19 20:34:19 116

原创 剑指offer 2替换空格

这道题没什么可说的,java写没什么技术含量,c++才能体现出来这道题的意义java 写法public class Solution { public String replaceSpace(StringBuffer str) { StringBuffer ss = new StringBuffer(""); int n=str.length(); for(int i=0;i<n;i++){ if(str.charAt

2020-06-18 19:58:27 83

原创 leetcode 1028. 从先序遍历还原二叉树

解法1. 递归涉及到树的先序遍历立刻就想到了递归,如下是遵照二叉树先序遍历顺序写的递归做法。/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution { //直接在递归中解析字

2020-06-18 19:50:20 165

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

三种做法1. 简单遍历到列表,然后反转2. 递归3. 反转链表,再遍历。/*** public class ListNode {* int val;* ListNode next = null;** ListNode(int val) {* this.val = val;* }* }**/import java.util.ArrayList;public class Solution {

2020-06-18 19:32:24 113

原创 leecode 1014最佳观光组合

最优解法注意到,观光值为A[i]+i+A[j]-j.对每一个固定的j,最大的观光值为A[j]-j+max(A[i]-i),i<j。我们选择从头开始遍历j显然这个max(A[i]-i)是可以在遍历过程中维护的。同时遍历时也可计算观光值的最大值。所以时间复杂度为o(n),空间复杂度为o(1)。代码:class Solution { public int maxScoreSightseeingPair(int[] A) { int maxi = A[0];

2020-06-17 15:15:29 130

原创 leecode 297 二叉树的序列化与反序列化

首先是简单的层序遍历序列化时:搞个队列,层序遍历,记录成”**,“的形式,值得注意的是,Java中设计频繁的字符串修改时,不要使用String,选择StringBuffer或StringBuilder代替。原因是String是不可变对象,每次修改都会new对象从而产生较大的功耗。反序列化时:同样建个队列,挨个获取字符串中的数据,逐个为节点添加左右节点。因为之前序列化的时候就是采用这个顺序。代码:/** * Definition for a binary tree node. * public

2020-06-17 00:42:14 100

原创 牛客剑指offer 1.二位数组中的查找

最优解法借助于二分搜索的拓展。详见官方题解:以右上角的元素为基准,若attr<tag,则tag必定不在attr的正左边,范围减小一行,attr下移一格;若attr>tag,tag必定不在attr的正下方,范围缩减一列,attr左移一格;直至查遍所有元素。这种做法,每次缩减一格或一行,最坏情况下,时间复杂度为o(m+n) m,n为数组行数和列数。代码如下:public class Solution { public boolean Find(int target, int

2020-06-16 20:00:07 112

原创 leetcode 990 等式方程 (6-8刷题)

方法:并查集。思路:相等的关系可以传递,最终的结果集必然是若干个集合,每个集合里的变量拥有相同的值,即处在同一个连通分量里。而不等关系则是两个变量在不同的连通分量里。所以,先针对相等关系建立并查集,而后判断每个不等关系是否都满足即可。代码:class Solution { // 并查集,这里并查集的根节点与下标相等。 public int[] parent=new int[26]; public int findParent(int t){ while(par

2020-06-08 23:16:58 123

原创 leetcode 42.接雨水——双指针

题目链接 传送门解析我承认一开始想复杂了,一看答案发现自己是个沙雕。我一开始居然往极值和差分那个方向去想了,还有就是题目居然标的是困难,唉。官方题解有四种方案暴力动态规划栈双指针。前三种,看官方题解就行,属于一点就通的方法。只是第四种方法即双指针法我不是很熟悉,所以觉得有点嚼头。我并没有死扣官方的代码,而是在题解点出的方向上自己重构的代码。思路如下首先,在写动态规划...

2020-04-05 00:09:12 221

原创 leetcode 169. 多数元素——摩尔投票算法

题目链接 传送门摩尔投票算法见leetCode 的题解https://leetcode-cn.com/problems/majority-element/solution/duo-shu-yuan-su-by-leetcode-solution/代码class Solution { public int majorityElement(int[] nums) { ...

2020-04-01 14:27:43 120

原创 leetcode 1111. 有效括号的嵌套深度——栈处理括号嵌套

题目链接 传送门思路代码:class Solution { public int[] maxDepthAfterSplit(String seq) { int top=0; char[] c=seq.toCharArray(); int[] ans=new int[c.length]; for(int i=0;i<...

2020-04-01 13:50:25 168

原创 leetcode 912. 排序数组——解法汇总,计数排序o(n),快速排序、归并排序、堆排序

题目链接传送门说明代码class Solution { public int[] sortArray(int[] nums) { //排序? //计数排序o(n) // sortTong(nums); //归并 // int[] temp=new int[nums.length]; // ...

2020-04-01 00:13:26 120

原创 leetcode 62. 圆圈中最后剩下的数字,约瑟夫环

链接 https://leetcode-cn.com/problems/yuan-quan-zhong-zui-hou-sheng-xia-de-shu-zi-lcof/官方题解写的就不错https://leetcode-cn.com/problems/yuan-quan-zhong-zui-hou-sheng-xia-de-shu-zi-lcof/solution/yuan-quan-zho...

2020-03-30 20:43:14 144

原创 The Trip On Abandoned Railway题解 二次差分树状数组

题目链接传送门题目描述题目大意是,一条废弃的地铁路线上有n个火车站,第i个火车站初始盘踞着ai个鬼鬼。然后有一辆幽灵列车会突然从某个车站出现,并从车上下来x个鬼。即该车站鬼魂数量+x。列车会一路行驶直至终点,每经过一个车站,从列车上下来的鬼魂数量就比前一个车站下来的多d个即从车上下来x+k*d个鬼魂,其中k为从列车出现经过的车站数。另有一个驱魔师,到了某个车站后,就将该车站的所有鬼魂全部...

2020-03-30 14:11:57 206

原创 顺时针打印二维矩阵

问题输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵:1 2 3 45 6 7 89 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.解决方案代码public static void solution(int[][] a){ ...

2020-03-26 20:08:56 180

原创 位数差 题解

题目链接传送门知识点二分题解题解摘自https://www.cnblogs.com/wsy107316/p/12334575.html按从大大到小排好的数组里,a[i]会与后面较小的数相加求位数后再累加,即计算∑0≤i<j≤n bit(a[i]+a[j]) 的值验证可知一个数k加上一个小于等于k的数后,其数位要么+1(产生进位),要么不加(没有产生进位)由于数组是降序排序...

2020-03-19 13:57:49 389

原创 二分法搜索临界点

二分最基础的二分查找是在有序数组里寻找某个值。如对升序序列a = {0,1,2,3,4,5,6,7,8,9}代码:int find(int *a,int l,int r,int k){ while(l<=r){ int mid=(l+r)>>1; if(a[mid]==k)return mid; if(a[mid]>k)r=mid-1; e...

2020-03-18 17:23:30 629

原创 小L 的序列 解析

小L 的序列 解析题目链接传送门知识点位运算,数据范围i&1 提取最后一位是否为1i>>1= i/2 左移一位这道题有个坑,被我完全踩进去了,数据范围是2^31-1 到 -2^31-1正好是int的范围,所以我果断用了int ,然后就gg了题目中有一个求绝对值的操作,所以负数部分一变成正的就超int 了换成long后就行了代码#include <io...

2020-03-17 15:35:26 265

原创 little w and Exchange 解析

little w and Exchange 解析题目链接传送门这是一道思维题,对于输出的n个数,如果这n个数可以任意组合相加成1~m的数,则输出YES。没做出来,看了解析解析就两句话:定义有n张纸币,且存在m,使得这n张纸币可以通过任意组合构成不超过m元的任意值,则n符合用a[n+1]表示第n+1张纸币的值,当a[n+1] <= m+1 时n+1才符合证明:反证法:若a[n...

2020-03-17 14:21:44 151

转载 java基础

本人学习java时,做的java基础知识总结:写代码:1,明确需求。我要做什么?2,分析思路。我要怎么做?1、2、3 。3,确定步骤。每一个思路部分用到哪些语句,方法,和对象。4,代码实现。用具体的java语言代码把思路体现出来。学习新技术的四点:1,该技术是什么?2,该技术有什么特点(使用注意):3,该技术怎么使用。demo4,该技术什么时候用?test。一:java概述:...

2020-01-06 09:55:27 158

原创 关于QT在界面中添加自制控件的方法

前些天实训时,要做一个界面,需要在界面上用到仪表盘,但qt并没有好看的仪表盘组件,设计ui的时候无法添加。于是我们想到从网上找一些别人已经做好的仪表盘控件,来添加到我们的界面中。但是遇到了一些问题。如代码所示#ifndef CUSTOMDIALPLOT_H#define CUSTOMDIALPLOT_H#include &lt;QWidget&gt;class CustomDia...

2018-09-18 17:36:56 4290 1

原创 算法设计学习日志———关于快速排序

今天的内容是快速排序,可以说是为了补上次博客的坑吧问题描述思考分析 实现解决源代码改进与总结 1.问题描述   排序,一直是一种比较热门的算法话题,有人已经证明了经典排序的时间复杂度下限为o(nlogn),越是好的算法越是接进这个时间复杂度的。   对一个长度为n的无序数组,对其进行排序,这就是我们今天要解决的问题   这一次我要写的是——快速排序,它的平...

2018-05-11 09:46:36 379

原创 算法设计学习日志---线性时间选择

早就开始学算法了,但一直没有特别用功学,现在我决定了,两天解决一个经典算法问题,并且写成博客,既是自我监督,以后忘了的话也好复习。 今天的内容是线性时间选择,1. 问题描述 2. 思考分析 3. 实现解决 4. 程序清单 5. 总结分析 1. 问题描述   线性时间选择问题的引入需要先通过解决下面的问题来深入。 “给我们一个没有排好序的数组,要求其中第k小的元素的值。”

2018-05-07 19:50:49 1111 2

转载 位运算

本篇文章转自他人,原址链接:位运算总结 按位与运算符(&amp;)参加运算的两个数据,按二进制位进行“与”运算。运算规则:0&amp;0=0;&nbsp;&nbsp;0&amp;1=0;&nbsp;&nbsp;&nbsp;1&amp;0=0;&nbsp;&nbsp;&nbsp;&nbsp;1&amp;1=1;&nbsp;

2018-04-10 11:15:32 197

原创 大数运算思想----大数阶乘

haha呃……今天学习了大数阶乘的求法 代码如下#include&lt;iostream&gt;using namespace std;int main(){ int c[20001]; int di=1;//位数初始为一; c[0]=1; int num=0;//进位初始为0; int n=1000;//求n!,求1000! f...

2018-02-05 19:37:31 2370

原创 单源最短路径---Dijkstra算法

有这样一道题:在一个图(如图所示)中,一共有四个点:1 2 3 4这四个点之间各有相连,且每条边都有自己的权值。现在小明在点1上,他想要到3去,请问最短路径是多少。很容易得到该图的邻接矩阵。我们建立一个二维数组a。a[i][j],i表示 起点,为行,j表示终点,为列。将相应的权值传入其中,如果从一个 点到另一个点不通,就认为其权值为无限例如(1-》2)为2,则a...

2018-01-13 21:38:29 27618 4

原创 使用“哨兵”减小时间复杂度

今天介绍一个很简单的算法,虽然简单,对于减少运行时间却有挺好 的效果。问题描述:对一个数组,该数组存放的数各都不同,即有唯一性。 对该数组进行查找,返回数据对应为a的序号。 如data[4]=a,就返回一个4。常规的做法是这样的://假设 数组长度为10int check(int a){ for(int i=0;i<10;i++) if(data[i]==a) re

2017-12-20 23:13:23 748

原创 多源最短路径——floyd-Warshall算法的拓展

多源最短路径——floyd-Warshall算法的拓展关于多源最短路径算法,我看了一下别人的博客——gooddeep的博客 总之核心代码就是五行。 for(int k=1;k<5;k++) for(int i=1;i<5;i++) for(int j=1;j<5;j++) if(infor[i][j]>infor[i][k]+infor[k

2017-10-11 10:30:20 422

原创 c++ new的用法

new关键字返回一个地址(即指针)::动态分配内存,自动在全剧中创建空间直到遇到delete关键字或程序终止,才销毁数据释放内存。例:int *num_ptr = new int(10);//创建一个int类型指针 指向10double* dou_ptr = new double(5.0);//……int *Aptr= new int[8];//指向数组 第一个数;不能直接赋值int *

2017-08-20 21:43:00 619

MEGAsyncSetup.dmg

这是Mega网盘安装包的MAC版本

2021-03-09

MEGAsyncSetup.exe

mega网盘是国外最流行的网盘服务之一,由于某些原因,国内无法访问其官网,故无法从官网上下载安装包

2021-03-09

python 实现 纹理图片分类识别 SVM支持向量机 图片资源与代码

题目是将图片库中的纹理图片裁剪成九份,其中五份做训练集,四份做测试集,先提取图片LBP特征 ,最后用svm支持向量机进行学习,在预测测试集里的图片是哪一类纹理。 正常情况下是需要调参的,即调整SVM的参数,但图省事只整了个循环,正常应该手动调参的。

2019-06-27

qt做的聊天软件,代码(之前传的资源忘记加代码了)

之前传的资源忘记加代码了,这个是那个的代码 qt网络编程,以json格式进行传输,服务器,与客户端,实现多用户链接,群聊私聊用户列表等功能,对初学网络编程者有学习价值

2018-09-17

QT做的聊天软件,客户端和服务器

自己用qt做的聊天室软件,有群聊,私聊和用户列表,客户端和服务器都有,exe文件,文件夹里面有所需要的dll文件,可在windows上直接运行。其中untitled.exe是服务器,chatclient.exe是客户端,链接时,输入服务器IP,端口号是10086,多个用户之间可进行群发和私法等功能。

2018-09-17

pcre-8.42.zip

PCRE(PerlCompatibleRegularExpressions)是一个Perl库,包括perl兼容的正则表达式库。这些在执行正规表达式模式匹配时用与Perl5同样的语法和语义是很有用的。

2018-04-10

nginx-0.8.36.tar.gz

Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx特点是占有内存少, 并发能力强。中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

2018-04-10

空空如也

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

TA关注的人

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