- 博客(45)
- 资源 (2)
- 收藏
- 关注
原创 StringBuffer 和StringBuilder的使用时机
关于StringBuffer 和StringBuilder对于具体的模块的实现,如果无法保证以后是在多线程模式下还是单线程模式下,要选用线程安全的。除非有一天确定是单线程,性能需要提升,再修改。编写代码,首先保证安全,性能有问题的时候再查找瓶颈不断优化。解决问题最好的办法就是保证安全的前提下,不断优化性能。坐等瓶颈的出现...
2020-09-29 11:48:18
216
原创 一个对象的初始化过程
对象初始化的时候究竟是怎么个什么过程,static修饰的变量和方法都怎么回事?使用的时候有什么区别?今天本小白带着疑问也进行了一番测试,。先上代码(自己测试的时候直接copy就行):class SuperClass { static Print staticMember = new Print("父类static成员变量 1"); { System.out.println("父类初始化块 1"); } static { ..
2020-09-18 23:39:34
345
原创 拼多多笔试题-2019-09-01
这题其实就是一个双向挖洞的问题,只要找到开头的点,然后往两边挖就得到结果了,由于第一个不扔掉的是特殊的,所以它有两种选择,向左或向右,其他的就卡死了。举个例子1234542371先去找,没找到,抛弃。2去找,找到了542367,同时2已经找过了,置-1,由于2两边都不是-1,所以它可以使左插入,也可以是右插入,是特殊的。3去找,找到了,发现-1在它左边,所以...
2019-09-01 17:51:43
694
原创 树的子结构
https://www.nowcoder.com/practice/6e196c44c7004d15b1610b9afca8bd88?tpId=13&tqId=11170&tPage=1&rp=1&ru=%2Fta%2Fcoding-interviews&qru=%2Fta%2Fcoding-interviews%2Fquestion-ranking输入...
2019-07-29 18:35:12
130
转载 线程安全(下)--彻底搞懂synchronized(从偏向锁到重量级锁)
转载:https://www.cnblogs.com/kubidemanong/p/9520071.html接触过线程安全的同学想必都使用过synchronized这个关键字,在java同步代码快中,synchronized的使用方式无非有两个:通过对一个对象进行加锁来实现同步,如下面代码。synchronized(lockObject){ //代码}对一个方法进行s...
2019-07-23 15:31:48
176
转载 线程安全(上)--彻底搞懂volatile关键字
转自:https://www.cnblogs.com/kubidemanong/p/9505944.html对于volatile这个关键字,相信很多朋友都听说过,甚至使用过,这个关键字虽然字面上理解起来比较简单,但是要用好起来却不是一件容易的事。这篇文章将从多个方面来讲解volatile,让你对它更加理解。计算机中为什么会出现线程不安全的问题volatile既然是与线程安全有关的问题...
2019-07-23 14:18:14
211
转载 硬中断和软中断
转自:https://blog.csdn.net/zhangskd/article/details/21992933概述 从本质上来讲,中断是一种电信号,当设备有某种事件发生时,它就会产生中断,通过总线把电信号发送给中断控制器。如果中断的线是激活的,中断控制器就把电信号发送给处理器的某个特定引脚。处理器于是立即停止自己正在做的事,跳到中断处理程序的入口点,进行中断处理。&n...
2019-07-22 20:08:03
304
转载 java保证线程安全的两种方式
转自:https://blog.csdn.net/xiangxianghehe/article/details/51135299 更新:我用C++,Java和Python简单示范了一下同步线程的机制,链接 浅议Rust开发中的线程安全,有兴趣的可以看一下。JVM有主内存(Main Memory)和工作内存(Working...
2019-07-18 14:58:40
199
原创 回文子串
链接:https://www.nowcoder.com/questionTerminal/003482c395bd41c68082f6adc545a600?toCommentId=3230733来源:牛客网给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。("回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。)具有不同开始位置或结束位...
2019-07-12 17:04:23
22480
原创 计数器
链接:https://www.nowcoder.com/questionTerminal/e953b0dc87bb43f29cb042c7a9f31598?toCommentId=3228116来源:牛客网小爱有一个奇怪的计数器。在第一个时刻计数器显示数字3,在接下来的每一个时刻,屏幕上的数字都会减1,直到减到1为止。接下来,计数器会重置为上一个计数周期初始值的两倍,然后再每一个时刻减1...
2019-07-11 23:57:22
541
原创 字符串归一化
链接:https://www.nowcoder.com/questionTerminal/6d5e036defdf408681376a4a9d4930ff来源:牛客网通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串归一化程序,统计字符串中相同字符出现的次数,并按字典序输出字符及其出现次数。例如字符串"babcc"归一化后为"a1b2c2"输入描述:每个测试用例...
2019-07-11 17:00:04
1880
原创 非整除集合
链接:https://www.nowcoder.com/questionTerminal/361ff5dd893c4e11856735e52007fca7?toCommentId=3225733来源:牛客网给定一个由正整数组成的集合S,找出一个最大的子集合S·,使得S·中任意两个数字的和都不能被K整除。例如S=「10,10,12,19,22,24,25」,K=4。S·的可能取值为「10,12...
2019-07-11 16:37:25
520
原创 evaluate-reverse-polish-notation
题目链接:https://www.nowcoder.com/practice/22f9d7dd89374b6c8289e44237c70447?tpId=46&tqId=29031&tPage=1&rp=1&ru=%2Fta%2Fleetcode&qru=%2Fta%2Fleetcode%2Fquestion-rankingEvaluate the...
2019-07-09 20:27:40
182
原创 House Robber
你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。示例 1:输入: [1,2,3,1]输出: 4解释: 偷窃 1 号房屋 (金额 = 1) ,然后偷...
2019-07-08 22:38:00
154
原创 二叉树最小深度
来源:https://www.nowcoder.com/practice/e08819cfdeb34985a8de9c4e6562e724?tpId=46&tqId=29030&tPage=1&rp=1&ru=/ta/leetcode&qru=/ta/leetcode/question-ranking题目描述minimum-depth-of-binar...
2019-07-08 21:19:40
214
原创 java中nextLine()和next()的区别
在java实现字符窗口的输入时,经常使用扫描器Scanner,它操作起来比较简单。在Scanner实现字符串的输入有两种方法,一种是next(),一种nextLine(),但是在使用中我经常感觉这两个用起来不能混用,尤其是不能一个next()之后再直接用nextLine()。那么这两种方法究竟有什么区别呢?区别在于:next()一定要读取到有效字符后才可以结束输入,对输入有效字符之前遇到的空格...
2019-07-08 09:55:09
256
原创 堆的应用
堆的应用常见的就是:求100000万个数中最大的100个。求100000万个数中第100大的数。类似这种的。对于排序,安安稳稳用库函数好了。其他的我转了一篇文章,感觉写的挺好的。...
2019-06-23 20:44:43
499
1
转载 堆以及堆的实际应用
堆以及堆的实际应用1.堆的概念 堆的存储可以看成是数组存储的变形,不过,堆的存储又具有二叉树的结构,堆的存储按类型可以分为大堆和小堆。小堆(大堆)中:任一节点的关键码均小于(大于)等于它的左右孩子的关键码,位于堆顶节点的关键码最小(最大),从根节点到每个结点的路...
2019-06-23 19:19:05
229
原创 最大乘积
链接:https://www.nowcoder.com/questionTerminal/5f29c72b1ae14d92b9c3fa03a037ac5f来源:牛客网给定一个无序数组,包含正数、负数和0,要求从中找出3个数的乘积,使得乘积最大,要求时间复杂度:O(n),空间复杂度:O(1)输入描述:无序整数数组A[n]输出描述:满足条件的最大乘积示例1输入...
2019-06-23 19:14:11
269
原创 大整数相乘
链接:https://www.nowcoder.com/questionTerminal/0f0badf5f2204a6bb968b0955a82779e来源:牛客网有两个用字符串表示的非常大的大整数,算出他们的乘积,也是用字符串表示。不能用系统自带的大整数类型。输入描述:空格分隔的两个字符串,代表输入的两个大整数输出描述:输入的乘积,用字符串表示示例1输入...
2019-06-23 18:39:01
548
原创 画家小Q
链接:https://www.nowcoder.com/questionTerminal/6acc6504df67406c98a75f5575e4b94a?orderByHotValue=1&page=1&onlyReference=false来源:牛客网画家小Q又开始他的艺术创作。小Q拿出了一块有NxM像素格的画板, 画板初始状态是空白的,用'X'表示。小Q有他独特...
2019-06-13 20:33:46
454
原创 贪吃的小Q
小Q的父母要出差N天,走之前给小Q留下了M块巧克力。小Q决定每天吃的巧克力数量不少于前一天吃的一半,但是他又不想在父母回来之前的某一天没有巧克力吃,请问他第一天最多能吃多少块巧克力输入描述:每个输入包含一个测试用例。每个测试用例的第一行包含两个正整数,表示父母出差的天数N(N<=50000)和巧克力的数量M(N<=M<=100000)。输出描述:输出一个数...
2019-06-12 16:15:49
381
1
原创 时间空间复杂度详解
数据结构中常常要求我们根据某些场景设计一种算法,使其能够帮助我们解决某些问题。算法的核心就是正确性了,算法不正确,再简单也是没用的。还有一点就是我们常说的起到关键作用的时间、空间复杂度。算法的时间复杂度反映了程序执行时间随输入规模增长而增长的量级,在很大程度上能很好反映出算法的优劣与否。掌握基本的算法时间复杂度分析方法是很有必要的。在数据结构中我们常用的就是算法的上界也就是O(),其他的还有下...
2019-06-02 15:04:36
326
原创 京东java笔试题
1完全多部图import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int a = sc.nextInt();while(a--!=0) {int b = sc.nextInt();i...
2018-09-09 21:30:16
1114
原创 爱奇艺笔试
第一题。直接找就好了。最后不知道为什么我用的 System.out.println()一直不过,用的 System.out.print()才过了。第二题。 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scan...
2018-04-19 20:59:57
1185
原创 数串
题目描述设有n个正整数,将他们连接成一排,组成一个最大的多位整数。如:n=3时,3个整数13,312,343,连成的最大整数为34331213。如:n=4时,4个整数7,13,4,246连接成的最大整数为7424613。输入描述:有多组测试样例,每组测试样例包含两行,第一行为一个整数N(N<=100),第二行包含N个数(每个数不超过1000,空格分开)。输出描述:每组数据输出一个表示最大的整...
2018-04-09 23:43:36
214
原创 下一个更大的数
有一串字符组成的数组,这些字符全都是0-9之间的,比如2,1,7,8,9,求用这些字符组成的比21789大的第一个数。也就是21798了。假设这个数据很长,那么我们怎么做呢,用暴力法估计电脑要罢工了。首先肯定是局部性原理了,下一个更大的数不能从前往后看,只能从后往前看,比如1234535324534245324567,下一个比它更大的数是1234535324534245324576,黑色加粗的部分...
2018-04-05 22:14:06
1311
原创 腾讯开发岗笔试题Java
第一题:public class Main { public static void main(String[] args) {Scanner sc = new Scanner(System.in); long n = sc.nextInt(); long m = sc.nextInt(); long sum = n/2 * m; Sy...
2018-04-05 17:27:48
2199
原创 移位运算注意事项
一个数乘以2或者除以2总有人喜欢直接左移或者右移一下来表示自己对移位运算的了解。然而很容易掉坑里。先说一下,移位运算有两种,一种叫算术移位运算符,一种叫逻辑移位运算符,这俩唯一的差距就是逻辑右移最高位补0,算术右移是最高位补符号位,一般大家也不怎么接触汇编~~一般的比汇编高级点的语言里的">>"和“<<”都是算术移位而非逻辑移位。首先正数左移右移都可以,左移n位相当于乘了一...
2018-04-04 22:44:25
1626
2
原创 三次握手与四次挥手
(1)三次握手是怎么个意思?三次握手的是为了是建立可靠的通信信道,简单来说就是数据的发送与接收,而三次握手最主要的目的就是双方确认自己与对方的发送与接收机能正常。这个三次握手只能是客户端去发起,服务器端接收确认的。正常来说服务器是一直在监听的,客户端上线后去请求服务器端,然后通过Tcp协议进行连接。没见过哪个服务器一直不停地去询问客户端:你上线没?你上线没?要不要建立连接~~ 第一次握手:Clie...
2018-04-04 21:42:52
169
原创 C语言之const与define区别
define 与const符号变量define是预编译指令,在预编译的时候仅仅进行字符替换,预编译后符号常量就不存在了,例如define PI 3.1415926 ,编译以后就不存在PI了,所有的PI都被换成了3.1415926。而且PI没有存储单元。而常变量const变量要占用存储单元,有变量值,只是值不能改,它有符号变量的优点,而且比较方便。其实还有一个static,不过这是C语言,就不说它...
2018-04-04 21:16:02
5694
4
原创 集合(京东2017秋招真题)
题目描述 给你两个集合,要求 {A} + {B}。注:同一个集合中不会有两个相同的元素。输入多组(不超过 5 组)数据。每组输入数据分为三行,第一行有两个数字 n,m($0<n,m\leq10000$),分别表示集合 A 和集合 B 的元素个数。后两行分别表示集合 A 和集合 B。每个元素为不超出 int 范围的整数,每个元素之间有一个空格隔开。输出针对每组数据输出一行数据,表示合...
2018-03-23 19:05:22
521
原创 2018美团面试题-最小的没出现的数字
今天写了美团校招的题,很悲剧,前面太慢了,最后代码时间不够,没想出来怎么做,然后刚结束就想出来了,捂脸!!!题没记住,大概就是给出一个字符串数组,数组里面的数字是‘0’-‘9’,假如是‘0’,‘1’,‘2’,‘3’,‘4’,这些数可以组成比如1,2,3,4,10,11,12,13,14,20,…………12340,43210这样的数。那么现在找出来最小的没出现的整数,比如1,2。这里第一个没出现的数...
2018-03-22 22:13:37
770
原创 全排列及应用
一般来说全排列用于数字排序问题,比如求1,2,3,5,6,7这几个数字组成的比123567大的第一个数,也就是123576,这时候可以用全排列来做,所有的可能都排一下,然后找大于123567的最小数,就是我们要求的了。时间复杂度就是O(n!)。当然这个题有别的做法,时间复杂度是O(n);有需要的可以找我,过两天再写。逻辑上也不复杂。再比如阿里巴巴最近的一道题:输入6个0-9的数字,找出来能组合的最...
2018-03-21 00:41:29
961
原创 跳跃游戏二
给定一个非负整数数组,假定你的初始位置为数组第一个下标。数组中的每个元素代表你在那个位置能够跳跃的最大长度。你的目标是到达最后一个下标,并且使用最少的跳跃次数。例如:A = [2,3,1,1,4]A=[2,3,1,1,4],到达最后一个下标的最少跳跃次数为 22。(先跳跃 11 步,从下标 00 到 11,然后跳跃 33 步,到达最后一个下标。一共两次)输入格式第一行输入一个正整数 n(1 \le...
2018-03-09 12:31:07
496
原创 跳跃游戏
给定一个非负整数数组,假定你的初始位置为数组第一个下标。数组中的每个元素代表你在那个位置能够跳跃的最大长度。请确认你是否能够跳跃到数组的最后一个下标。例如:A = [2,3,1,1,4]A=[2,3,1,1,4] 能够跳跃到最后一个下标,输出true;A = [3,2,1,0,4]A=[3,2,1,0,4] 不能跳跃到最后一个下标,输出false。输入格式第一行输入一个正整数 n(1 \leq n...
2018-03-09 12:20:47
466
原创 维基解密
在最近一期的维基解密中,公布了一串神秘的数字,这引起了很多的猜想。但是只有晓萌知道其中的含义——因为这些神秘的数字就是他留下的记录!其实你有所不知,现在每天忙碌于百度大厦实习的晓萌,在学校读书期间有一大爱好——每当他遇到一个MM,总是会不由自主地从相貌和身材上分别给其打分,首先他会在相貌上选择一个奇数分a (-1018≤a≤1018),然后在身材上再选择一个偶数分b (-1018 ≤ b ≤ 10...
2018-03-09 12:00:05
2352
原创 第一个没有出现的正整数
给定一个数组,从 11 到 nn,找出数组中第一个没出现的正数。例如:给定[1,2,0],则返回 33。给定[3,4,-1,1],则返回 22。注意:算法需要 O(n) 的时间复杂度以及线性的空间复杂度。输入格式第一行输入整数 n(n≤106),接下来一行输入数组A[n]。输出格式输出第一个没出现的正数。样例输入54 2 0 1 4样例输出3 这道题我们首先要考虑的就是这个线性...
2017-10-23 21:43:30
1260
原创 单独的数字
一个整型数组中有一个元素只出现一次,其它元素都出现两次。求出只出现一次的元素。这个问题有两种办法:第一种暴力解决,直接两层for循环就搞定了,两个两个对比,发现有一个对比不上的就是他了。空间复杂度O(1),时间复杂度(n²)第二种,仔细审题,每个元素出现两次,只有一个出现一次,我们都知道异或运算,就是这个符号" ^ ",任何两个相同的数异或一下都是0,任何数和0
2017-10-23 21:41:36
371
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人