- 博客(41)
- 收藏
- 关注
原创 [Leetcode]字符串中的查找与替换
对于某些字符串 S,我们将执行一些替换操作,用新的字母组替换原有的字母组(不一定大小相同)。每个替换操作具有 3 个参数:起始索引 i,源字 x 和目标字 y。规则是如果 x 从原始字符串 S 中的位置 i 开始,那么我们将用 y 替换出现的 x。如果没有,我们什么都不做。举个例子,如果我们有 S = “abcd” 并且我们有一些替换操作 i = 2,x = “cd”,y = “ffff”,那...
2019-03-18 19:58:17
725
原创 [字节跳动]2019春招笔试题:绳子问题
n根绳子,分别记其长度。现要从这些绳子中截出等长的m段,求这些绳子长度的最大值。比如有3根绳子长分别为 3,5, 4.现在要截成4段,则最长为2.50(结果保留小数点后两位)测试用例:输入:3 4 (3代表绳子数、4代表截取数)3 5 4 (绳子长度)输出:2.50package spring;import java.util.*;public class Main5...
2019-03-18 16:34:50
1689
原创 [字节跳动]2018秋招算法题【持续更新中】
1.世界杯开幕式会在球场C举行,球场C的球迷看台可以容纳M*N个球迷。在球场售票完成后,现官方想统计此次开幕式一共有多少个球队球迷群体,最大的球队球迷群体有多少人。经调研发现,球迷群体在选座时有以下特性:同球队的球迷群体会选择相邻座位,不同球队的球迷群体会选择不相邻的座位(注解:相邻包括前后相邻,左右相邻,斜对角相邻)给定一个M*N的二维球场,0代表该位置没有坐人,1代表该位置已有选择,希望...
2019-03-13 10:52:10
742
原创 [今日头条]字母交换
【编码题】字符串S由小写字母构成,长度为n。定义一种操作,每次都可以挑选字符串中任意的两个相邻字母进行交换。询问在至多交换m次之后,字符串中最多有多少个连续的位置上的字母相同?输入描述:第一行为一个字符串S与一个非负整数m。(1 <= |S| <= 1000, 1 <= m <= 1000000)输出描述:一个非负整数,表示操作之后,连续最长的相同字母数量。输入例...
2019-03-12 19:10:03
525
原创 腾讯算法题汇总[牛客网过腾讯春招题所有测试用例](下)
小Q有X首长度为A的不同的歌和Y首长度为B的不同的歌,现在小Q想用这些歌组成一个总长度正好为K的歌单,每首歌最多只能在歌单中出现一次,在不考虑歌单内歌曲的先后顺序的情况下,请问有多少种组成歌单的方法。输入描述:每个输入包含一个测试用例。每个测试用例的第一行包含一个整数,表示歌单的总长度K(1&amp;lt;=K&amp;lt;=1000)。接下来的一行包含四个正整数,分别表示歌的第一种长度A(A&amp;lt;=...
2019-03-11 16:26:09
502
原创 腾讯算法题汇总[牛客网过腾讯春招题所有测试用例](上)
小Q定义了一种数列称为翻转数列:给定整数n和m, 满足n能被2m整除。对于一串连续递增整数数列1, 2, 3, 4…, 每隔m个符号翻转一次, 最初符号为’-’;。例如n = 8, m = 2, 数列就是: -1, -2, +3, +4, -5, -6, +7, +8.而n = 4, m = 1, 数列就是: -1, +2, -3, + 4.小Q现在希望你能帮他算算前n项和为多少。输入...
2019-03-10 17:26:19
1069
原创 [字节跳动]手串题-非dp简单解法
作为一个手串艺人,有金主向你订购了一条包含n个杂色串珠的手串——每个串珠要么无色,要么涂了若干种颜色。为了使手串的色彩看起来不那么单调,金主要求,手串上的任意一种颜色(不包含无色),在任意连续的m个串珠里至多出现一次(注意这里手串是一个环形)。手串上的颜色一共有c种。现在按顺时针序告诉你n个串珠的手串上,每个串珠用所包含的颜色分别有哪些。请你判断该手串上有多少种颜色不符合要求。即询问有多少种颜色在...
2019-03-09 16:53:40
345
原创 初读分布式CAP随笔
什么是 CAP ? CAP即 一致性 (Consistency)、可用性 (Availabiility)、分区容错性 (Tolerance of network Partition) C:多个数据副本间 在同一时间数据保持一致 A:系统提供的服务一直处于可用状态,每个用户请求要在限定的时间内返回结果 P:除非整个分布式系统瘫痪,否则在某些分区发生故障时,系统对外提供的服务仍需保证一致性...
2019-03-09 16:28:05
101
原创 理解MVC、MVP
MVC 由 Model、View、Controller组成:用户通过 View 输入请求 -> View将请求转发给Controller -> Controller 操作Model完成请求-> 由Model更新ViewMVP 由Model、View、Presenter(Controller)用户通过View输入请求 -> View将请求转发给Presente...
2019-03-08 15:13:42
116
转载 区分I/O多路复用机制select、poll、epoll
select、poll、epoll 都属于I/O 多路复用机制。IO 多路复用机制 用于内核中监视多个文件描述符,一旦某个描述符准备就绪,能够通知等待资源的程序进行读写操做。select、poll、epoll 本质上都是同步I/O,进程需要在读写就绪后,负责进行读写(读写过程处于阻塞状态);而异步I/O 无需进程自己读写,异步I/O会负责自动将数据从内核拷贝到用户空间中。区别:轮询对...
2019-03-08 10:24:05
128
原创 I/O模型随笔
阻塞IO模型(读写过程会发生阻塞现象) 用户线程发出IO请求后,查看内核数据是否已经准备就绪,若未就绪,则线程释放CPU进入阻塞态; 当内核数据准备完毕后,内核会将数据copy到用户线程,返回结果给用户线程,用户线程进入就绪态非阻塞IO模型 用户线程发起IO请求后,无需等待,会马上收到内核反馈,如果反馈结果为error, 则表示数据未准备就绪。 用户线程会不断的去内核进行询问,...
2019-03-07 18:24:04
113
原创 [深信服]狡兔三窟--非DP解法
题目描述: 假设兔子有n个排成一排的洞,编号为1和n。兔子每天晚上跳到相邻的一个洞里住,而猎人每天白天检查其中的一个洞。猎人告诉你每天检查的洞的编号,希望你分析一下是否一定能抓到兔子。 输入描述: 首先输入n和k(n,k<1000),分别表示洞的个数和猎人要检查的天数;接下来输入k个整数,表示猎人每天检查的洞的编号。 输出描述: ...
2019-03-07 09:59:35
1047
原创 [LeetCode] Minimum Window Substring
Given a string S and a string T, find the minimum window in S which will contain all the characters in T in complexity O(n).Example:Input: S = “ADOBECODEBANC”, T = “ABC”Output: “BANC” import java....
2019-03-04 18:15:30
170
原创 1v1面试题汇总JAVA【持续更新中】
JAVA系列:聊一下类加载器 类加载器是用于加载类文件的类。Java源码通过javac编译器编译成类文件, 然后JVM来执行类文件中的字节码来执行程序。 类加载负责加载文件系统、网络或其他来源的类文件。有三种默认使用的类加载器: Bootstrap类加载器、Extension类加载器和System类加载器(又称Application类加载器) 1. Bootstrap类加载器负责加...
2019-03-04 17:04:30
255
原创 【算法】最长不同子串(Map求解)
这道题难度比较适中,直接上解法: import java.util.HashMap; import java.util.Scanner; public class MaxSubString { public static void main (String[] args) { Scanner sc = new Scanner(System.i...
2019-03-04 17:00:13
201
1
原创 [字节跳动]坐标轴右上角最大值问题
P为给定的二维平面整数点集。定义 P 中某点x,如果x满足 P 中任意点都不在 x 的右上方区域内(横纵坐标都大于x),则称其为“最大的”。求出所有“最大的”点的集合。(所有点的横坐标和纵坐标都不重复, 坐标轴范围在[0, 1e9) 内)如下图:实心点为满足条件的点的集合。请实现代码找到集合 P 中的所有 ”最大“ 点的集合并输出。输入描述:第一行输入点集的个数 N, 接下来 N 行,每行...
2019-03-03 16:33:05
600
转载 Docker原理随笔
Namespaces(命名空间) namespaces 是Linux 中用于分离 进程树、网络接口、挂载点以及进程间通信 等资源的方法。 在单服务器中,如果启动了多个服务,且未使用namespaces进行服务间会相互干扰, 每个服务都能看到其他服务的进程,也可访问宿主机器上的任意文件。 这显然不是我们所乐意的,我们更愿意运行在同一台机器上的不同服务之间能做到 完全隔离,就像运行在多台不...
2019-02-25 12:44:33
147
原创 [牛客网]使用哈夫曼编码来编码字符串"aaaabbcd"时,得到的编码长度为多少?
题目:使用哈夫曼编码来编码字符串&quot;aaaabbcd&quot;时,得到的编码长度为多少?将题目给出的数字及其出现频率进行统计按照权重从小到大进行合并(每次取出最小的两个值,以最小值为左子,最大值为右子,进行合并,合并完放回合并数组中,继续合并,直到只剩下一个数,无法合并)在哈夫曼树中,左子树的树枝记位0,右子树的树枝记位1则树中每一个叶子节点的编码为:(二进制表示)0(a),10(b),11...
2019-02-21 10:25:45
4133
原创 HTTP/IP协议常见知识点
网络层结构网络层主流结构有两种分层方式:OSI七层模型 和 TCP/IP 四层模型OSI 全称 Open System interconnect,意为 开方式系统互联,目前没有成熟产品(太繁琐没人用)TCP/IP 则是指 传输控制协议/网间协议, 是目前世界上应用最广泛的协议TCP/IP协议运作整体把握假设主机A发送数据给主机B,流程如下:A应用层数据 -> A传输层 ->...
2019-02-20 16:53:50
1003
原创 石子归并问题(难度:简单->一般->困难)-- 涉及贪心算法、矩阵连乘、动态规划
初阶问题:(贪心算法求解)(1)有N堆石子,现要将石子有序的合并成一堆,规定如下:每次只能移动任意的2堆石子合并,合并花费为新合成的一堆石子的数量。求将这N堆石子合并成一堆的最低花费 //有N堆石子,现要将石子有序的合并成一堆, // 规定如下: // 每次只能移动任意的2堆石子合并,合并花费为新合成的一堆石子的数量。求将这N堆石子合并的最低花费 //可以认为是一个森林变树的过程...
2019-02-19 10:18:35
968
原创 堆排及应用例子
最小化堆堆排堆的难点在于:取出最小值时,需要向下过滤,找出次小值顶替最小值位置插入时,需要向上回溯找到插入值的位置 public class Heap { private int[] nums; private int base = 0;//堆容量基数,扩容时使用 //capacity 初始化堆大小 public Heap (int ...
2019-02-15 15:20:09
137
原创 Http的8种请求方式及状态码简述
Http的8种请求方式Http一共有8种请求方式,但一般常用的是GET和POSTGET:向特定的资源发出请求并等待实体返回,比如 查询某一个具体的用户信息,或某一组具体的用户信息POST:向指定资源提交数据进行处理。一般通过POST请求向服务器端提交表单数据、上传文件、创建实体对象(比如新增一个用户对象到数据库)PUT:更新指定资源位置内容。一般会用POST请求创建新的用户,用PUT请求...
2019-02-14 23:20:29
547
原创 区分HashMap、HashTable、CurrentHashMap三者的区别
先从HashMap和HashTable讲起:两者都实现了Map接口,主要区别在于线程安全性,同步(synchronization),以及速度1.1. HashMap的KV均可为null,而HashTable的KV均不能为null。因此,不是使用get(key)判断HashMap是否存在某个键,而应该用containsKey(key)来判断某个键1.2. HashMap是非synchroni...
2019-02-14 16:20:53
3098
转载 动态规划入门--------------铭记历史或重蹈覆辙
动态规划核心思想:铭记历史或重蹈覆辙(功不唐捐)故事引入:A * “1+1+1+1+1+1+1+1 =?” *A : “上面等式的值是多少”B : 计算 “8!”A *在上面等式的左边写上 “1+” *A : “此时等式的值为多少”B : quickly “9!”A : “你怎么这么快就知道答案了”A : “只要在8的基础上加1就行了”A : “所以你不用重新计算因为你记住了第...
2019-02-14 15:35:18
329
2
原创 Java堆(年轻代 -- 老年代 -- 永久代)
JVM所管理的内存空间中,Java堆是最大的一块,主要用于存放各类实例对象,如下图:JVM中的堆被划分为两个不同区域:新生代Young、老年代Old。新生代又划分为Eden(伊甸,标志新生), Survivor0(s0), Survivor(s1)。JVM中堆的GC分为:Minor GC 和 Full GC(又称为Major GC)年轻代年轻代用于存放新创建的对象,存储大小默认为堆大小的...
2019-02-13 11:32:34
4925
1
原创 【剑指Offer扩展题】一个整型数组里除了2个数字之外,其他的数字都出现了两次,请写程序找出这个只出现一次的数字
package Once;import java.util.Scanner;//一个整型数组里除了1个数字之外,其他的数字都出现了两次,请写程序找出这个只出现一次的数字。//要求时间复杂度是 O(n),空间复杂度是 O(1),//例如输入数组{2, 4, 3, 3, 2, 5 },因为只有 4 这个数字只出现一次,其他数字都出现了两次,所以输出 4//那么,当数组中有2个只出现1次的数字...
2019-02-12 17:24:10
974
1
原创 酷狗算法题-买橘子
小明去附近的水果店买橙子,水果商贩只提供整袋购买,有每袋6个和每袋8个的包装(包装不可拆分)。可是小明只想购买恰好n个橙子,并且尽量少的袋数方便携带。如果不能购买恰好n个橙子,小明将不会购买。请根据此实现一个程序,要求:输入一个整数n,表示小明想要购买n(1≤n≤100)个橙子输出一个整数表示最少需要购买的袋数,如果不能买恰好n个橙子则输出-1例如,输入20,输出3。import ja...
2019-02-12 16:12:58
726
原创 简单理解JVM机理(水满则溢)
理解Java虚拟机须从四个方面入手:JVM是如何进行内存分配的如何保证正确的回收JVM什么情况下触发GC以及GC的过程如何监控优化GC首先,从JVM内存分布图入手:图片引用链接https://blog.csdn.net/sinat_30293905/article/details/82463204程序计数器(该内存区域是JVM中唯一没有规定OutOfMemoryError的区...
2019-02-12 14:35:59
206
原创 用户喜好(今日头条算法题)
为了不断优化推荐效果,今日头条每天要存储和处理海量数据。假设有这样一种场景:我们对用户按照它们的注册时间先后来标号,对于一类文章,每个用户都有不同的喜好值,我们会想知道某一段时间内注册的用户(标号相连的一批用户)中,有多少用户对这类文章喜好值为k。因为一些特殊的原因,不会出现一个查询的用户区间完全覆盖另一个查询的用户区间(不存在L1&amp;lt;=L2&amp;lt;=R2&amp;lt;=R1)。输入描述:输入:...
2019-02-05 12:30:25
3024
2
原创 二分查找(折半查找)
二分查找要求:线性表是有序表,即表中结点按关键字有序(关键字不能重复出现)二分查找的基本思想是:设R[l,r]是当前的查找区间(1)首先确定该区间的中点位置mid(2)然后将待查的K值与R[mid].key比较:若相等,则查找成功并返回此位置,否则须确定新的查找区间,继续二分查找,具体方法如下:① 若R[mid].key>K,则由表的有序性可知R[mid…n].keys均大于K,...
2019-02-02 14:36:54
359
原创 快排
对于给定的数组,从中选一个元素为比较对象:可以以左边第一个数作为目标数(每轮排序要确定一个目标数在数组中的最终位置),从右边最高位开始向后比较,直到出现目标数大于右边数情况,将目标数放入右边数位置,右边数放入低位数位置(low指向位置),然后从low++位置开始比较,直到出现左边数大于目标数情况,将目标数放入左边数位置,左边数放入目标数位置,如此循环,直到low和high相遇,该位置即为目标数的...
2019-02-02 11:56:09
330
原创 笔试题:长短链接互转(今日头条)
今日刷头条笔试题遇到如下情景题:题目描述早期短链接广泛应用于图片上传网站,通过缩短网址URL链接字数,达到减少代码字符串的目的。常见于网店图片分类的使用,因有字符个数限制,采用短链接可以达到外链图片的目的。自微博盛行以来,在微博字数有限的特色下,短链接也盛行于微博网站,以节省字数给博主发布更多文字的空间。问题描述:设计一个短链生成和查询系统,需要提供以下两个功能:1、提供长链转换短链的接口...
2019-01-30 09:58:34
2467
原创 RPC远程服务调用的简单理解
RPC(Remote Promote Call) 一种进程间通信方式。允许像调用本地服务一样调用远程服务。RPC框架的主要目标就是让远程服务调用更简单、透明。RPC框架负责屏蔽底层的传输方式(TCP或者UDP)、序列化方式(XML/JSON/二进制)和通信细节。开发人员在使用的时候只需要了解谁在什么位置提供了什么样的远程服务接口即可,并不需要关心底层通信细节和调用过程。RPC框架实现的几个核心...
2019-01-25 10:23:38
1202
原创 如果一个头条的客户端程序,冷启动时间为4秒,怎么判断开启速度是合理的还是不合理的?如果不合理,该如何找到问题,提供思路。
今日头条的一条笔试题,记录一下个人的解决方案,不能说绝对正确:考虑网络通畅问题,查看是否断网考虑客户端系统配置(包括运存、CPU、内存等参数),判断是否符合客户端启动的基本要求,是否因为性能问题导致比对其他软件的平均启动时间,观察是否头条客户的启动时间明显高于其他软件判断是否因为应用初始内容过多问题导致启动时间超时,是否需要优化初始化内容...
2019-01-24 18:22:01
2805
原创 今日头条-最大区间问题Java求解
今日头条-最大区间问题Java求解问题:给定一个数组序列, 需要求选出一个区间, 使得该区间是所有区间中经过如下计算的值最大的一个:区间中的最小数 * 区间所有数的和最后程序输出经过计算后的最大值即可,不需要输出具体的区间。如给定序列 [6 2 1]则根据上述公式, 可得到所有可以选定各个区间的计算值:[6] = 6 * 6 = 36;[2] = 2 * 2 = 4;[1] = 1...
2019-01-24 18:00:11
640
转载 Spring Boot入门(六)测试
主要内容: 集成测试 在服务器里测试应用程序 Spring Boot的测试辅助工具Spring的 SpringJUnit4ClassRunner 可以在基于JUnit的应用程序测试里加载Spring应用程序上下文。在测试Spring Boot应用程序时,Spring Boot除了拥有Spring的集成测试支持,还开启了自动配置和Web服务器,并提供了不少实用的测试辅助工具。集成测...
2018-09-26 17:47:58
309
转载 Spring Boot入门(五)自定义配置
两种影响自动配置的方式:使用显式配置进行覆盖和使用属性进行精细化配置覆盖Spring Boot自动配置一般,若不用配置就能得到和显式配置一样的结果,那不写配置是最直接的选择。大多数情况下,自动配置Bean刚好能满足需求,不需要去覆盖他们。但某些情况下,Spring Boot在自动配置时还不能很好地进行推断。接下来以Spring Security为例,探讨自动配置提供了什么,如何进行覆盖...
2018-09-26 14:32:45
406
1
转载 Spring Boot入门(四)自动配置
Spring Boot自动配置是一个运行时的过程,考虑众多因素,决定Spring配置应该使用哪个,而不该用哪个。Spring Boot自动配置需要考虑:Spring的JdbcTemplate是否在Classpath中?若有,并且有DataSource的Bean,则自动配置一个JdbcTemplate的Bean。Thymeleaf是否在Classpath中?若有,则配置Thymeleaf的模...
2018-09-25 14:06:13
160
转载 Spring Boot入门(三)起步依赖
Spring Boot起步依赖的功能:开发者只需指定功能,构建过程自动分析用户需求,引入相关依赖起步依赖本质上是一个Maven项目对象模型(Project Object Model,POM),定义了对其他库的传递依赖,通过依赖叠加,实现功能支持,因此很多依赖的命令都暗示了他们所提供的特定功能。例如,你打算做一个web应用,有两种选择:一种是传统的向项目构建文件里添加一堆单独的库依赖;另一种,则...
2018-09-21 10:55:55
987
转载 Spring Boot入门(二)IntelliJ IDEA下目录树
构建新项目文件解析build.gradle:Gradle构建说明文件DemoApplication.java:应用程序启动引导类(bootstrap class),亦是主要的Sping配置类application.properties:用于配置应用程序和Spring Boot的属性DemoApplicationTests.java:基本集成测试类DemoApplicati...
2018-09-21 09:41:32
242
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人