自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

twh233的算法blog

New Blog http://twh233.top

  • 博客(596)
  • 资源 (2)
  • 收藏
  • 关注

原创 成都卓杭 面试

面服务器开发。1.自我介绍2.你提到你参与的游戏开发的项目,我想问问你知道客户端和服务端和数据库是怎么交互的吗,能画个图吗3.TCP UDP 区别4.死锁发生的四个条件5.线程 进程区别6.3次握手解释一下7.二叉树结点是135个,一个度的点是x个,问两个度的点有几个135 - 1 = x + 2 * n8.rand5 实现rand 79.回忆不...

2019-09-24 18:58:06 782

原创 吉比特 面试

一面:1.介绍自己2.学校课程有哪些,需要看代码的课程有哪些,需要写代码的课程有哪些3.成绩怎么样(我人nm傻了,我第一次有面试官问我这些4.编译原理知道吗有所了解5.线程,进程区别6.死锁是什么7.怎么处理死锁8.TCP UDP区别9.struct A { char a; short b; int c;}一看题就知...

2019-09-24 18:50:31 1260

原创 网易面试

1.static 几种用法2.deque vector底层如何实现的3.TCP UDP区别, TCP为什么可靠4.解释拥塞控制,滑动窗口5.虚函数知道多少析构啊,动态绑定啊,虚指针啊,额外开销啊,能想到的都说了6.进程 线程 协程给一个场景,如果一个浏览器,一个网站和网站里的东西,你认为是线程还是进程。答:一个网站做一个进程,网站里的分支作为协程,解释。7.协程...

2019-09-22 17:28:23 434

原创 用非递归方式编码对一个二叉树的前、中、后、层次遍历。

牛客网瓜子2019笔试题,仅用来复习二叉树遍历#include<bits/stdc++.h>using namespace std;struct TreeNode { int val; int left; int right;}t[1000];int vis[1000];int ans[1000];void preOrder(TreeNo...

2019-09-22 15:40:02 289

转载 leetcode 95. 不同的二叉搜索树 II

题目转自这里/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {}...

2019-09-16 21:00:06 136

原创 剑指 二叉搜索树的第K个结点

题目链接非递归做法:/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { }};*/class Solution {...

2019-09-02 17:50:21 111

原创 剑指 链表中环的入口结点

题目链接牛客讨论区的做法,perfect/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solution {public: ListNode* EntryNode...

2019-09-02 16:33:47 97

原创 剑指 正则表达式匹配

题目链接首先,考虑特殊情况: 1>两个字符串都为空,返回true 2>当第一个字符串不空,而第二个字符串空了,返回false(因为这样,就无法 匹配成功了,而如果第一个字符串空了,第二个字符串非空,还是可能匹配成 功的,比如第二个字符串是“a*a*a*a*”,由于‘*’之前的元素可以出现0次, ...

2019-09-02 16:28:35 209

原创 剑指 数组中重复的数字

题目链接遇到这种题,每次第一反应都是map啊,我太难了。当然开个bool 做vis标记能做,这里记录讨论里一种没想到的做法。遇到过一次就加length,如果后面再遇到这个数,已经大于length了,那么肯定是之前重复过的。class Solution {public: // Parameters: // numbers: an arr...

2019-09-02 15:04:30 111

原创 剑指 和为S的连续正数序列

题目链接太久没写双指针了,都忘了,其实这个也不算,只是指定一个窗口,把从左到右中间的数都存起来,我还以为二分做,结果。。。class Solution {public: vector<vector<int> > FindContinuousSequence(int sum) { vector<vector<int> &g...

2019-08-30 16:05:45 121

原创 剑指 数组中只出现一次的数字

题目链接这个两次用的好啊,给人提醒用异或来做,异或和之后怎么办呢,要把这两个数分开,只有找到其中一个数再异或就能异或出另外个数了,看到牛客网里别人的做法,通过位运算把异或和是1的那一位找出来再去把所有这一位是1的数都异或一遍就能找到上诉所说的数字了,说的可能有点绕,看代码应该就懂了。class Solution {public: void FindNumsAppearOnce(...

2019-08-30 16:00:29 103

原创 剑指 数组中出现次数超过一半的数字

题目链接这个题我遇到过很多次了,每次都没认真想,每次都想的map统计一下之类的,这样浪费了空间。有一个做法挺好的:在遍历数组时保存两个值:一是数组中一个数字,一是次数。遍历下一个数字时,若它与之前保存的数字相同,则次数加1,否则次数减1;若次数为0,则保存下一个数字,并将次数置为1。遍历结束后,所保存的数字即为所求。然后再判断它是否符合条件即可。因为超过一半必定能使次数为正数。...

2019-08-19 17:12:45 75

原创 剑指 二叉搜索树的后序遍历

题目链接后序,左右根。设l为左端,r为右端,vector为a。 a[r]一定是根。比a[r]大的都是右儿子,比a[r]小的都是左儿子。那么找到一个i为分界线递归判断即可。class Solution {public: bool VerifySquenceOfBST(vector<int> sequence) { if(sequence.s...

2019-08-16 12:16:41 104

原创 剑指 树的子结构 dfs

啊,太久不写题自己好菜啊。题目链接找到两边val都相等的root,然后dfs,记得同时满足左左和右右相等的话用&&public class Solution { public boolean HasSubtree(TreeNode root1,TreeNode root2) { boolean result = false; i...

2019-08-13 15:54:46 108

原创 头条面试

1.介绍公司项目2.数据库 给一个数据库 w 100 w 200 w 300 查询name 数字,最终的结果w 3,w出现了三次写出sql3.http 响应码; post get put 还有哪些; 请求get post 经常干什么 4.linux tar -zxvf 哪个是解压 哪个是压缩 你常用的linux命令 644 用户用户组权限 kill -9 9的含义; ...

2019-08-05 10:21:52 227

原创 minieye面试

就一面。内容(尽量回忆):1.自我介绍2.说说数据结构(splay呢3.自己在ACM擅长哪部分4.判断点在凸包里怎么判断5.动态规划解题方法6.写过爬虫,能讲讲吗7.解题策略和算法的区别8.图论知道哪些,讲一讲9.内网协议(不知道)10.ip4不够了怎么解决(根本不知道系列- -)之后百度:第一类是提高IPv4地址的空间利用效率,如子网技术和超网...

2019-04-11 17:37:23 1227

原创 leetcode 买卖股票 dp

309. 最佳买卖股票时机含冷冻期dp[i][j] i是天数,j是状态,0代表未持有股票,1代表持有股票,2代表冷冻期-prices[i]代表买这一天的股票花的钱class Solution { public int maxProfit(int[] prices) { int n = prices.length; if(n == 0) retu...

2019-03-21 16:18:25 203

原创 leetcode 相交链表 easy

题目链接链表题基本都要用快慢指针啊,仔细一想,我把headA, headB弄一个环出来,一快一慢,在O(n)的时间内肯定能找到相交点,然而题目的意思是headA, headB已经相交了,那么假如拿B做一个环,那么A最后也会连接上B的开头。再用快慢指针指到相交点就好了。class Solution { public ListNode getIntersectionNode(Li...

2018-12-17 19:31:49 133

原创 leetcode 最大子序和 easy

题目链接题目链接这里提供log(n)的做法。首先二分去找左边的最大子序和,再找右边的最大子序和,再找中间合起来就好了。class Solution { public static int maxSubArray(int[] nums) { if(nums.length == 0) return 0; return solve(nums, 0...

2018-12-12 17:21:01 129

原创 leetcode 搜索旋转排序数组 mid

题目链接看到这个O(logN)的复杂度要求,一瞬间就想到二分法。这题说的旋转,实际上就是左右整体互换,也就导致出现了两个递增序列。也就是说当我们二分查找时,有两种可能,一种是选择的部分一个递增序列,而另一种可能选择的部分横跨两个递增序列。我们只要每次处理递增序列那部分就好。 class Solution { public int search(int[] nums, ...

2018-12-12 17:10:18 140

原创 leetcode 旋转链表 mid

题目链接链表不能通过index来访问,要一步步的走,所以要麻烦一些。要注意当k大于链表长度时的处理,需要先遍历一遍得到链表长度n,然后k对n取余,用余数来翻转。/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ...

2018-12-12 16:59:16 208

原创 leetcode 三数之和 mid

题目链接可以发现,我们最能想到的办法是n*n*log(n),但有没有办法n*n的办法解决呢,答案是有的:首先我们肯定得枚举一次List,那么还剩下O(n)的复杂度,可以想到我们枚举的List,a + b + c = 0a + b = -c  就当枚举的-c ,我们需要去List里找 a + b,由于List里的数的递增性,我们可以尺取的取出 a + b另左端点在0,右端点在List...

2018-12-12 16:09:38 274

原创 leetcode 寻找两个有序数组的中位数 hard

题目链接这篇文章写得很全面:https://www.cnblogs.com/grandyang/p/4465932.html 摘抄如下: 这道题让我们求两个有序数组的中位数,而且限制了时间复杂度为O(log (m+n)),看到这个时间复杂度,自然而然的想到了应该使用二分查找法来求解。但是这道题被定义为Hard也是有其原因的,难就难在要在两个未合并的有序数组之间使用二分法,如果这...

2018-12-05 23:31:44 1043

转载 2018六校联合周赛上学期第六场 做完其他题后才能做的题 每次贪心选取比前一个数大的数

题目链接由于这篇题解写得太好了,不做过多阐述。  因为我们需要维护的是一段区间内的一个严格单调递增的序列,考虑到其具有的单调性,我们可以考虑运用线段树维护每一小段的最大值,并且通过最大值进行对长度的更新。    现在考虑如何在push_up的过程中将严格上升序列长度进行更新。    我们去维护一个区间中能够摘取多少个苹果,就是求[l,mid] 和[mid+1,r]两个区间的...

2018-11-22 21:22:35 166

原创 KMP

KMP算法详解:KMP算法之所以叫做KMP算法是因为这个算法是由三个人共同提出来的,就取三个人名字的首字母作为该算法的名字。其实KMP算法与BF算法的区别就在于KMP算法巧妙的消除了指针i的回溯问题,只需确定下次匹配j的位置即可,使得问题的复杂度由O(mn)下降到O(m+n)。在KMP算法中,为了确定在匹配不成功时,下次匹配时j的位置,引入了next[]数组,next[j]的值表示P[0......

2018-11-13 21:10:14 176

原创 2018年牛客多校算法寒假训练营练习比赛(第二场)F.德玛西亚万岁 (状压DP

题目链接 题意:给你一个n*m的矩阵,0代表不可以站人,1代表可以站人,并且相邻的格子之间不能站人(上下左右四个方向)。问有多少种站人的方法。  考虑每一行,便利每一种状态,在当前行的基础上,维护下一行的状态,复杂度 o(1&lt;&lt;m)^2*o(n)左右相邻的用j&amp;(j&gt;&gt;1)即可判断上下相邻的用k&amp;j可判断 /// ...

2018-11-07 00:13:45 300

原创 hdu 4348 To the moon 历史的区间和

题意:n个数, m个操作1. C l r d  给[l, r]区间的每个数加上d2. Q l r:   查询[l, r]区间的和3. H l r t: 查询第t个操作时[l, r]区间的和4. B t:     回到第t个操作之后 因为有查询历史的区间和,故用主席树(保留了历史)区间更新直接更新到每个子节点即可 #define lson l, m#define rson...

2018-11-05 12:36:50 335

原创 hdu 4417 Super Mario 二分+主席树第K小

题目链接题意:n个数 m个询问  (n、m≤105n、m≤105)每个询问有l, r, k  问的是[l, r]区间内有多少个数小于等于k 用主席树做的话查询第i小的数与k比较即可 /// .-~~~~~~~~~-._ _.-~~~~~~~~~-./// __.' ~. ....

2018-11-03 15:25:04 117

原创 2018六校联合周赛上学期第三场 中二病也要敲代码2 线段树连续区间最小值

题目链接其实D题是个线段树,用线段树维护子区间的的最小值,因为是个环,所以说有两种情况要考虑,一种是1 ~ n里面的最小值就是答案的情况,第二种是sum - [1 , n]的最大值,这两种情况就可以了。但是题目要求的是不能全取,所以我们要考虑全部取到的情况,全部取到的话,就得减去最大值,这样就OK了。那么你可能会问线段树怎么维护所有的子区间呢?我们需要了解一个东西,如何维护所有子区间的最大...

2018-10-31 00:39:17 213

原创 ZOJ - 2112 动态单点修改主席树

题目链接参考博客:https://www.cnblogs.com/Empress/p/4659824.html题意:n个数,q个询问 (n&lt;=50000, q&lt;=10000)Q x y z 代表询问[x, y]区间里的第z小的数C x y    代表将(从左往右数)第x个数变成y  对于更新, 我们不改变这些已经建好的树, 而是另建一批树S,用来记录更新,而...

2018-10-30 12:26:47 336

原创 Count on a tree 树上 (u,v)的路上的第K小的权值(主席树+树剖lca

题目链接题目大意: 就是求在树上 (u,v)的路上的第K小的权值解题思路: 首先对于求第K小的问题 我们可以用主席树搞 ,没有问题, 但是对于一个树形结构,我们需要将其转化为线性,然后需要树剖才能做.然后考虑链上的第k值怎么维护 , 发现如果树剖计算的话 维护不了啊 因为(u,v)的路 可能在很多个链上,那么不能对每个求第K值,这样明显是错误的啊,然后我们知道主席树其实就...

2018-10-28 13:51:51 338

原创 2018六校联合周赛上学期第二场 seventh的tired树上路径 异或字典树

题目链接 众所周知树上两个点xy的距离是deep[x]+deep[y]-deep[lca(x,y)]*2然后我们把这个加减法换成异或,我们就会发现,deep[lca(x,y)]被消掉了所以题目就简化成w是每个点的前缀异或和,只要找到一对最大的(x,y)让w[x]^w[y]最大就行了,这个经典问题用字典树就能解决了。注意不要过量memset /// ...

2018-10-24 22:23:11 133

原创 2018六校联合周赛上学期第二场 seventh的平面 (主席树)

题目链接 这题当询问是一条平行于y轴的直线的时候,大家应该都会做,只要知道有多少条平行x轴的线段经过询问的那个点就行了。这个题询问的是线段,不是直线,所以要对平行与x轴的线段建立主席树就行了,为了方便AC,这题离散化都不用写,直接拿主席树拍上去就能过了。 /// .-~~~~~~~~~-._ _.-~~~~~~~~~-./// ...

2018-10-24 22:20:43 149

原创 2018六校联合周赛上学期第二场 QQ的烦恼(树状数组)

题目链接 原题:poj 1990 首先对数据进行离散化排序,给其标记id号再进行对v排序。n_num代表当前猫坐标之前的猫的总数,x_sum代表当前猫坐标之前的猫的坐标和对于q[i]左边的猫,贡献和是q[i].v*(n_num*q[i].x-x_sum)对于q[i]右边的猫,贡献和是q[i].v*(sum(n,2)-x_sum-(i-1-n_num)*q[i].x)...

2018-10-24 22:11:42 132

原创 牛客练习赛11 B.假的字符串 (trie+拓扑排序

题目链接转自:https://blog.csdn.net/Mr_Treeeee/article/details/79177733先全部存入字典树。然后一个个判。可以得到mp[26][26]矩阵代表mp[x][y]。x字母要大于y字母。 然后检查这个矩阵有没有矛盾就行了。//拓扑排序找环注意包含关系则大的那个不能输出。 #include &lt;iostream&g...

2018-10-22 12:13:14 211 1

原创 牛客练习赛11 E.求最值 (平面最近点对)

题目链接裸体,套板子 /// .-~~~~~~~~~-._ _.-~~~~~~~~~-./// __.' ~. .~ `.__/// .'// \./ \\`./// ...

2018-10-17 19:28:22 160

原创 2018六校联合周赛上学期第一场-我来爆零啦 Home_W的gcd

题目链接Home_W的gcdTimeLimit:1000MS  MemoryLimit:128MB64-bit integer IO format:%lld已解决 | 点击收藏Problem Description给出一个序列a1,a2,a3,……an。HOME_W想在其中挖掘二元组,其中二元组的挖掘方法如下。对于任意整数 l,r ,可得到一个二元组(l,gcd(a...

2018-10-15 19:27:26 238

原创 2018六校联合周赛上学期第一场-我来爆零啦 HOME_W的头顶好凉啊 (容斥)

题目链接HOME_W的头顶好凉啊TimeLimit:500MS  MemoryLimit:128MB64-bit integer IO format:%lld已解决 | 点击收藏Problem Description给定n个整数a1,a2,a3……an,且1&lt;=ai&lt;=n问有多少对i,j 满足i&lt;j   且gcd(a[i],a[j])=1,2,3,……n。...

2018-10-15 19:23:13 206

原创 2018六校联合周赛上学期第一场-我来爆零啦 寻找中位数 kth

题目链接 寻找中位数TimeLimit:1000MS  MemoryLimit:128MB64-bit integer IO format:%lldProblem Description这题温暖大家的心(手动滑稽.jpg我看能收割多少个wa)给定n个整数,求这些整数的中位数。注意:若n为偶数,输出从小到大排序后最中间的两个数的平均数向下取整的结果.其中向下取整的...

2018-10-15 19:17:29 188

原创 Wannafly挑战赛8 C.小C打比赛 (状态压缩从1开始

题目链接做法:对n进行状态压缩,选第i个或者不选第i个对概率的影响是不一样的。另外这个题问到了max值,dp预定,精彩的地方就在于^,^过后剩下的都是没有选的题。/// .-~~~~~~~~~-._ _.-~~~~~~~~~-./// __.' ~. .~ ...

2018-10-12 00:04:43 156

JAVA多线程运用

1. 建立三个线程,并且同时运行它们。当运行时输出线程的名称。 实验步骤: (1)、创建类sy6_1 (2)、创建三个线程,调用start()方法启动这三个线程 (3)、保存文件,调试并编译运行程序。 参考程序运行效果: 2. 实现3个类:Storage、Counter和Printer。 Storage类应存储整数。 Counter应创建线程,线程从0开始计数(0,1,2,3…)并将每个值存储到Storage类中。 Printer类应创建一个线程,线程读取Storage类中的值并打印值。编写程序创建Storage类的实例,并创建一个Counter对象和Printer对象操作此实例。 实验步骤: (1)、创建三个类Counter, Printer,Storage (2)、创建TestCounter类,在该类中定义main函数,在main函数中定义Storage对象、Counter对象和 Printer对象,创建Counter线程和Printer线程并启动 (3)、保存文件,调试并编译运行程序。 参考程序运行效果: 3. 修改实验1第2题的程序,添加适当代码,以确保每个数字都恰好只被打印一次。 实验步骤: (1)、创建三个类Counter, Printer,Storage (2)、 创建TestCounter类,在该类中定义main函数,在main函数中定义Storage对象、Counter1对象和 Printer对象,创建Counter线程和Printer线程并启动 (3)、在定义Storage类中的setValue(int i) 和getValue ()方法时使用synchronized关键字,将其定义为同步方法 (4)、保存文件,调试并编译运行程序。 参考程序运行效果:

2017-12-08

ACM几何模版

ACM几何模版,如果有需求的ACMer可以下载看看,只是给同ACMer一点参考资料

2017-10-07

空空如也

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

TA关注的人

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