- 博客(112)
- 收藏
- 关注
原创 1
Public class OperationFactory { public static Operation createOperate(string operate){ Operation oper = null; switch(operate){ case “+”: oper = new OperationAdd(); break; case “-”: oper ...
2019-08-22 11:35:05
218
原创 链表的排序
/*** 本参考程序来自九章算法,由 @九章算法 提供。版权所有,转发请注明出处。* - 九章算法致力于帮助更多中国人找到好的工作,教师团队均来自硅谷和国内的一线大公司在职工程师。* - 现有的面试培训课程包括:九章算法班,系统设计班,算法强化班,Java入门与基础算法班,Android 项目实战班,* - Big Data 项目实战班,算法面试高频题班, 动态规划专题班* - 更多详...
2019-07-15 17:46:56
204
原创 算法基础__第2课(按照某个值划分数组、荷兰国旗问题、快速排序以及对快速排序的改进、堆排序以及堆排序的时间复杂度分析。基数排序特点以及介绍)
给出一个整数数组 nums 和一个整数 k。划分数组(即移动数组 nums 中的元素),使得:所有小于k的元素移到左边所有大于等于k的元素移到右边返回数组划分的位置,即数组中第一个位置 i,满足 nums[i] 大于等于 k。样例Example 1:Input:[],9Output:0Example 2:Input:[3,2,2,1],2Output:1Ex...
2019-06-15 15:58:27
255
原创 算法基础__第3课(数组实现队列和栈、实现能够获取最小值的栈、队实现栈、栈实现队、转圈打印矩阵、螺旋矩阵、链表反转(I、II)、之字形打印矩阵、有序矩阵找值、打印链表公共部分、带环链表问题)
用数组结构实现大小固定的队列和栈//// arrtostackorqueue.cpp// basic3//// Created by 吴珝君 on 2019/6/13.// Copyright © 2019年 闲着也是贤者. All rights reserved.//#include <iostream>#include <iostream&...
2019-06-13 17:19:14
257
原创 算法基础__第4课(二叉树前中后序非递归遍历、层次遍历、二叉树的序列化与反序列化、二叉树的后继节点、二叉搜索树的后继节点、折纸问题)
1. 二叉树的锯齿形层次遍历给出一棵二叉树,返回其节点值的锯齿形层次遍历(先从左往右,下一层再从右往左,层与层之间交替进行) 样例样例 1:输入:{1,2,3}输出:[[1],[3,2]]解释: 1 / \ 2 3它将被序列化为 {1,2,3}样例 2:输入:{3,9,20,#,#,15,7}输出:[[3],[20,9],[15,7]]解释: ...
2019-06-12 18:58:29
315
原创 算法基础__第5课(认识哈希函数与哈希表、设计RandomPool结构、认识布隆过滤器、认识一致性哈希、岛问题、认识并查集结构)
57. Insert Delete GetRandom O(1)中文English设计一个数据结构实现在平均 O(1) 的复杂度下执行以下所有的操作。insert(val): 如果这个元素不在set中,则插入。remove(val): 如果这个元素在set中,则从set中移除。getRandom: 随机从set中返回一个元素。每一个元素返回的可能性必须相同。样例// 初始...
2019-06-12 17:28:02
195
原创 算法基础__第7课(前缀树以及相关应用、分金条问题、IPO问题、数据流中的中位数、宣讲会的场次、字符串的最小拼接序列)
什么是前缀树、前缀树的基本特征、前缀树的应用、所谓的字典树又被称为前缀树或者叫做trie树,是处理字符串的常用数据结构。其优点是利用字符串的公共前缀来节约存储空间。其基本性质如下:(1)根节点没有字符路径。除根节点之外,每一个节点都被一个字符路径找到。(2)从根节点出发到任何一个节点,如果将沿途 的字符连接起来,一定是某个字符串的前缀。(3)每个节点向下所有的字符路径上的字符都不同。...
2019-06-11 19:30:42
209
原创 算法进阶__第4课(大楼轮廓问题、LRU、LFU、异或和为0的最多划分、最大搜索二叉子树、和为aim的最长子数组)
给定一个N行3列二维数组,每一行表示有一座大楼,一共有N座 大楼。 所有大楼的底部都坐落在X轴上,每一行的三个值 (a,b,c)代表每座大楼的从(a,0)点开始,到 (b,0)点结束,高 度为c。 输入的数据可以保证a<b,且a,b,c均为正数。大楼之 间可以有重合。 请输出整体的轮廓线。 例子:给定一个二维数组 [ [1, 3, 3], [2, 4, 4], [5, 6, 1] ]...
2019-06-10 19:38:52
318
原创 算法进阶__第5课(判断一棵二叉树是否是搜索二叉树、判断一棵二叉树是否是完全二叉树、判断一棵树是否是平衡二叉树、二叉树的最大路径和[1][2]、最大欢乐值、)
判断一棵二叉树是否是搜索二叉树、 struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {} }; class Solution1{public: l...
2019-06-10 18:11:14
261
原创 算法进阶__第6课(换硬币(需要的最少的硬币数,硬币有多个)、换硬币(能够换硬币的种类,硬币有多个)、字符串匹配、未排序数组种累加和维给定值的最长子数组系列问题)
需要的最少硬币数目class Solution {public: /** * @param coins: a list of integer * @param amount: a total amount of money amount * @return: the fewest number of coins that you ne...
2019-06-08 21:15:34
201
原创 算法进阶__第7课(矩阵的最小路径和、最长递增子序列、最长公共子序列(长度+序列)、最长公共字符串(长度+子串)、最小编辑距离、回文最小分割数、有效的括号序列[1][2]、最长有效的括号数)
矩阵的最小路径和【题目】 给定一个矩阵m,从左上角开始每次只能向右或者向下走,最后 到达右下角的位置,路径上所有的数字累加起来就是路径和, 返回所有的路径中最小的路径和。【举例】如果给定的m如下:1359813450618840 路径1,3,1,0,6,1,0是所有路径中路径和最小的,所以返 回12。【要求】额外空间复杂度O( min {m , n})//// ...
2019-06-05 17:43:43
314
原创 算法进阶__第8课(两个有序数组相加和的topk问题、边长都是1的正方形大小、最大子数组的和、最长不重复子串、斐波那契扩展、完美洗牌问题)
题目1:两个有序数组间相加和的TOP K问题【题目】 给定两个有序数组arr1和arr2,再给定一个整数k,返回来自 arr1和arr2的两个数相加和最大的前k个,两个数必须分别来自 两个数组。【举例】 arr1=[1,2,3,4,5],arr2=[3,5,7,9,11],k=4。 返回数组[16,15,14,14]。【要求】时间复杂度达到O(klogk)。class N...
2019-06-05 11:58:46
893
原创 分红包的两种方法
import java.math.BigDecimal;import java.text.DecimalFormat;import java.util.*;public class RedPacket { public static void main(String[] args) { // list = divideRedPacket(3,2);...
2019-05-30 16:42:51
578
原创 LRU的实现
typedef struct double_link_list{ int key; int val; struct double_link_list *pre; struct double_link_list *next; double_link_list(int key, int val) { this->key = ke...
2019-05-28 16:14:45
152
原创 深信服一面面试
2019.5.26深信服一面1、简要介绍你的项目,你做了什么,在这个项目中收获了什么?这个项目的难点在哪里?越障评估?2、vector和list的比较3、STL的组成4、memcmp能否比较结构体5、map的底层实现6、常见的文件操作API7、strcpy使用的时候会导致哪些问题?8、快排的原理9、怎么从一个随机集合中取出三个数 这三个数一定不同10、多个...
2019-05-27 15:40:49
991
原创 BST(java和c++实现)
import jdk.dynalink.beans.StaticClass;public class BST_Test { public static void main(String[] args) { System.out.println("helloworld"); int [] a = {62,88,58,47,35,73,51,99...
2019-05-24 19:33:25
357
原创 求和为aim的最长子数组以及扩展问题
求和为aim的最长子数组//// mosteor.cpp// AdvancedFour//// Created by 吴珝君 on 2019/5/23.// Copyright © 2019年 闲着也是贤者. All rights reserved.//#include "mosteor.hpp"#include <iostream>#include...
2019-05-23 20:15:13
238
原创 大楼轮廓问题
水平面上有N座大楼,每座大楼都是矩阵的形状,可以用一个三元组表示(start, end, height),分别代表其在x轴上的起点,终点和高度。大楼之间从远处看可能会重叠,求出N座大楼的外轮廓线。外轮廓线的表示方法为若干三元组,每个三元组包含三个数字 (start, end, height),代表这段轮廓的起始位置,终止位置和高度。请注意合并同样高度的相邻轮廓,不同的轮廓线在...
2019-05-23 10:57:23
532
原创 C程序中使用正则
POSIX规定了正则表达式的C语言库函数,详见regex(3)。我们已经学习了很多C语言库函数的用法,读者应该具备自己看懂man手册的能力了。本章介绍了正则表达式在grep、sed、awk中的用法,学习要能够举一反三,请读者根据regex(3)自己总结正则表达式在C语言中的用法,写一些简单的程序,例如验证用户输入的IP地址或email地址格式是否正确。C语言处理正则表达式常用的函数有regc...
2019-05-21 17:26:28
322
原创 广播的实现
//// main.c// broadcastclient//// Created by 吴珝君 on 2019/5/20.// Copyright © 2019年 闲着也是贤者. All rights reserved.//#include <stdio.h>#include <unistd.h>#include <string.h&g...
2019-05-20 12:40:33
362
原创 组播的实现
//// main.c// udpmuticastserver//// Created by 吴珝君 on 2019/5/20.// Copyright © 2019年 闲着也是贤者. All rights reserved.//#include <stdio.h>#include <unistd.h>#include <string.h...
2019-05-20 10:54:59
1404
原创 本地套接字的使用
#include <stdio.h>#include <unistd.h>#include <sys/socket.h>#include <strings.h>#include <string.h>#include <ctype.h>#include <arpa/inet.h>#include &l...
2019-05-20 09:07:30
485
原创 udp简单通信
//客户端#include <stdio.h>#include <string.h>#include <unistd.h>#include <arpa/inet.h>#include <ctype.h>#define SERV_PORT 8000int main(int argc, char *argv[]){ ...
2019-05-19 21:03:44
384
原创 去除出现最少的字符串(错误思路分析)
#include <iostream>#include <string>#include <vector>#include <algorithm>using namespace std;void getcount(string s){ int a[26] ={0}; fill(a, a+26, 0); f...
2019-05-19 09:42:26
118
原创 关于多路IO的总结
1、select首先,select的缺点1:是select管理的描述符的数量在不重新编译内核的情况下是一个固定的值:1024,当然,重新编译了Linux内核之后,这个数值可以继续增大到用户的需求,但是这是相对来说比较麻烦的一件事。其次。select的缺点2:是select对于socket描述符的管理方式,因为Linux内核对select的实现方式为每次返回前都要对所有的描述符进行一遍遍历,...
2019-05-18 17:42:18
231
原创 东方证券笔试
笔试问题汇总小王、小张、小赵三个人是好朋友,他们中三个人一个人下海经商,一个考上了重点大学,一个人参军了,此外还知道下面的条件:小赵的年龄比比士兵的年龄大、大学生的年龄比小张小,小王的年龄和大学生不一样。 分析:小赵不是士兵、小张不是大学生、小王不是大学生 那么 可以确定小赵是大学生 由于小张的年龄大于大学生的年龄 大于士兵的年龄 因而小张是商人、那么小王只能是士兵。 答案:小赵:大学...
2019-05-14 20:36:33
822
原创 猫眼面试题汇总
1、浏览器输入网址到呈现内容,中间发生了什么?1、查询DNS,获取域名对应的IP。(1)检查本地hosts文件是否有这个网址的映射,如果有,就调用这个IP地址映射,解析完成。(2)如果没有,则查找本地DNS解析器缓存是否有这个网址的映射,如果有,返回映射,解析完成。(3)如果没有,则查找填写或分配的首选DNS服务器,称为本地DNS服务器。服务器接收到查询时: · 如...
2019-05-14 17:59:31
1313
原创 http请求格式(专题)
(本文的解释是完整的,ajax把很多东西封装了)HTTP有两类报文:请求报文和响应报文。HTTP请求报文一个HTTP请求报文由请求行(request line)、请求头部(header)、空行和请求数据4个部分组成,下图给出了请求报文的一般格式。or<request-line><headers><blank line>[<request-body>1.请求头...
2019-05-14 17:49:28
4955
原创 猫眼撸代码题汇总
1、排序2、topk3、栈实现队 队实现栈4、查找子串的出现次数5、数组实现栈 /队列6、求最大连续子序列7、查找数组中是否存在当前的元素//// main.cpp// cateye//// Created by 吴珝君 on 2019/5/10.// Copyright © 2019年 闲着也是贤者. All rights reserved./...
2019-05-14 16:56:51
334
原创 4、模拟多线程服务器并发
#include <stdio.h>#include <string.h>#include <arpa/inet.h>#include <pthread.h>#include <ctype.h>#include <unistd.h>#include <fcntl.h>#include "wrap....
2019-05-08 19:08:35
162
原创 3、模拟多进程并发服务器
//// main.cpp// mutiserver//// Created by 吴珝君 on 2019/5/8.// Copyright © 2019年 闲着也是贤者. All rights reserved.//#include <iostream>#include "mysocket.hpp"#include <unistd.h>#i...
2019-05-08 18:30:50
283
原创 2、对socket常用函数的简单封装
//// mysocket.hpp// SocketServer//// Created by 吴珝君 on 2019/5/8.// Copyright © 2019年 闲着也是贤者. All rights reserved.//#ifndef mysocket_hpp#define mysocket_hpp#include <stdio.h>#...
2019-05-08 11:54:40
193
原创 1、简单socket通信
//// main.cpp// SocketClient//// Created by 吴珝君 on 2019/5/8.// Copyright © 2019年 闲着也是贤者. All rights reserved.//#include <stdio.h>#include <unistd.h>#include <string.h>...
2019-05-08 10:07:59
125
原创 按照字符串中某个字符子串的出现顺序对字符串排序
//// main.cpp// newcoder//// Created by 吴珝君 on 2019/5/5.// Copyright © 2019年 闲着也是贤者. All rights reserved.//#include <iostream>#include <string>#include <vector>#inclu...
2019-05-07 09:35:02
1077
原创 增加一个字符使其成为回文串
//// main.cpp// newcoder//// Created by 吴珝君 on 2019/5/5.// Copyright © 2019年 闲着也是贤者. All rights reserved.//#include <iostream>#include <string>#include <vector>#inclu...
2019-05-06 21:45:51
1544
原创 字符串替换
//// main.cpp// newcoder//// Created by 吴珝君 on 2019/5/5.// Copyright © 2019年 闲着也是贤者. All rights reserved.//#include <iostream>#include <string>#include <vector>using...
2019-05-06 20:09:25
197
原创 字符串的处理(分割字符串与替换字符)
//// main.cpp// newcoder//// Created by 吴珝君 on 2019/5/5.// Copyright © 2019年 闲着也是贤者. All rights reserved.///*题目描述请你实现一个简单的字符串替换函数。原串中需要替换的占位符为"%s",请按照参数列表的顺序一一替换占位符。若参数列表的字符数大于占位符个数。 则将剩...
2019-05-05 17:38:19
1637
原创 linux基础(基本命令与简单服务器搭建)
1、yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。2、安...
2019-04-22 21:48:45
185
原创 贪心策略(分糖果、移除数字、区间覆盖问题)
贪心算法是指:在对问题求解的时候,总是做出在当前看来最好的选择。也就是说,找出局部最优解。通过求局部最优解得到最终问题的答案。贪心策略的选择必须具备无后效性,即某个状态以前的过程不会影响以后的状态,只与当前状态有关。贪心问题的解决步骤:(1)当我们看到这些问题,首先联想到贪心算法:针对一组数据,我们定义了限制值和期望值,希望从中选择几个数据,在满足限制值的情况下,期望值最大。(2)尝试...
2019-04-04 15:56:38
371
原创 字符串输入未知长度数组的处理(记拼多多血与泪的故事)
#include<iostream>#include<string>#include<vector>using namespace std;void splitString(const string &s, vector<string> &v, const string &c){ string:...
2019-04-04 10:11:47
836
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人