- 博客(266)
- 资源 (192)
- 收藏
- 关注
原创 互联网寒冬中来自清华学霸的送温暖
如何通过多轮面试,杀进大厂? ?不是没有技巧,只需一周即可搞定 以下是一位清华学霸的分享: 我们将分享java程序员需要的所有思维导图资料,帮助你将知识结构化、系统化、帮你节省很多时间、帮你梳理面试高频问题,所有jpg、png图片免费,有兴趣的同学可以有偿使用我们的导图源文件,真正的站在巨人的肩膀上,一次付费,永久免费升级和迭代。相比于动辄几十万+的高薪,几十块钱是小,职业...
2019-06-07 16:47:18 1991
原创 薪水
到网上找了几张互联网行业的薪资水平统计表:重点来了——————————————————————————————————————————...
2019-09-14 09:18:15 309
原创 719. Find K-th Smallest Pair Distance
719.Find K-th Smallest Pair Distance解法:二分法+滑动窗口+尺取class Solution { public int smallestDistancePair(int[] nums, int k) { Arrays.sort(nums); int len=nums.length; in...
2019-08-11 20:43:04 329
原创 300. Longest Increasing Subsequence
300.Longest Increasing SubsequenceO(nlgn)解法class Solution { public int lengthOfLIS(int[] nums) { int size=0; int tail[]=new int[nums.length]; for(int i=0;i<nums.l...
2019-08-09 17:28:04 281
原创 32. Longest Valid Parentheses
解法一:暴力:class Solution { public int longestValidParentheses(String s) { int maxlen=0; for(int i=0;i<s.length() && i<s.length()-maxlen;i++){ int cnt1=0,c...
2019-08-07 15:26:03 131
原创 31. Next Permutation
这道题偏重数学分析,尤其是在寻找规律时,首先要分析需要变化数组的哪些位置,然后是对这些变化后再做什么处理。step1 :从右向左找到第一个nums[i]<nums[i+1]的数组的位置;step 2: 从右向左找到第一个大于nums[i]的位置j,nums[j]与nums[i]交换;step 3:读i位置之后的数据做相应变化: 解法一:将i位置之后的数据冲排序...
2019-08-07 13:16:14 140
原创 1106. Parsing A Boolean Expression
思路:自己写一个split类别的函数+DFSclass Solution { public boolean parseBoolExpr(String expression) { if(expression.length()<=0) return false; char ch=expression.charAt(0); ...
2019-08-05 21:26:49 134
原创 面试经典题:手写生产者消费者
使用阻塞队列实现生产者import java.util.concurrent.BlockingQueue;public class Producer implements Runnable{ private final BlockingQueue sharedQueue; public Producer(BlockingQueue sharedQueue){ ...
2019-08-04 14:17:25 222
原创 面试经典题目:多线程循环打印
写法1:lockimport java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;public class UsingLock { Lock lock=new ReentrantLock(); // 保证每次只有一个线程能够拿到资源 int time; // 控...
2019-08-04 14:13:50 186
原创 148. Sort List 单链表归并排序、快速排序、插入排序、选择排序
归并排序class Solution { public ListNode sortList(ListNode head) { if(head==null || head.next==null) return head; ListNode fast=head,low=head; while(fast.next!=...
2019-06-29 22:23:40 117
原创 Best Time to Buy and Sell Stock 题目集合
121.Best Time to Buy and Sell Stock思路:两个值一个值记录目前最大收益、一个值记录目前的最低买入,从前往后扫一遍,每次更新此前的最大收益,然后更新到此位置的最低买入。class Solution { public int maxProfit(int[] prices) { if(prices.length<=1) ...
2019-06-29 22:23:05 169
原创 单例模式之懒汉模式、饿汉模式、双重校验锁
饿汉模式(线程安全版本)public class Singleton { //在静态初始化器中创建单例实例,这段代码保证了线程安全 private static Singleton uniqueInstance = new Singleton(); //Singleton类只有一个构造方法并且是被private修饰的,所以用户无法通过new方法创建该对象实例 ...
2019-06-27 10:00:50 373
原创 给A、B两个IP段,再给一个C,判断C是否在这个IP范围内
思路:转换成二进制,再转换成整数,再比较大小。import java.math.BigInteger;import java.util.Scanner;/** * Created by wangxi on 2019/6/26. */public class TT { public static void main(String[] args) { Sca...
2019-06-26 15:07:47 509
原创 leetcode 10. Regular Expression Matching & 44. Wildcard Matching
10. Regular Expression Matching思路:动态规划,首先是初始化,考虑s.length()为0时应该对p进行初始化,能初始化的位置是p.(i)=='*' dp[0][i-2]=true;第二步是状态转移方程,很多状态转移方程可分解为几个小问题,一个是分情况讨论,第二个是与前面一个状态或者若干状态的关系。往往这两个小问题是层层递进的,只有分情况讨论清晰了,才知道...
2019-06-25 00:13:18 202
原创 动态规划之编辑距离
编辑距离:可以替换、删除、插入一个字符,dp[i-1][j-1]属于替换,dp[i][j-1]输入i方插入,dp[i-1][j]属于i方删除。class Solution { public int minDistance(String word1, String word2) { int len1=word1.length(),len2=word2.length()...
2019-06-24 09:45:08 158
原创 大数相加&大数相乘
415.Add Strings模拟加法class Solution { public String addStrings(String num1, String num2) { StringBuffer s1=null; StringBuffer s2=null; if(num1.length()>num2.lengt...
2019-06-23 13:46:01 118
原创 链表操作相关的题目
206.Reverse Linked List解法:新建节点class Solution { public ListNode reverseList(ListNode head) { ListNode p=new ListNode(0); p.next=null; while(head!=null){ ...
2019-06-23 12:19:37 139
原创 Jump Game & Jump Game II
Jump Game解法:贪心+状态记录class Solution { public boolean canJump(int[] nums) { int index=0; for(int i=0;i<nums.length-1;i++){ if(index>=i && index<nu...
2019-06-23 10:08:20 213
原创 Search in Rotated Sorted Array & Search in Rotated Sorted Array II & 旋转数组找最小值
Search in Rotated Sorted Array在旋转数组里查找目标值,数字没有重复数字。解法:二分查找分析:如果nums[mid]<target && target<=nums[high],则low=mid+1;如果nums[mid]>target && target>=nums[low]则high=mid-1...
2019-06-23 09:33:37 138
原创 Longest Palindromic Substring
解法一:双指针class Solution { public String longestPalindrome(String s) { if(s.length()<=1) return s; int s1=0,e1=0; for(int i=1;i<s.length();i++){ ...
2019-06-23 02:37:52 139
原创 Longest Substring Without Repeating Characters
解法一:使用双指针+setclass Solution { public int lengthOfLongestSubstring(String s) { Set<Character> set=new HashSet<Character>(); int max=0; for(int i=0,j=0;i<s....
2019-06-23 00:41:20 113
原创 Median of Two Sorted Arrays
思路很简明,在两个有序数组里找到中间那位,如果有两个则求个均值返回。问题分析:常见的是在一个有序数组里找到中位数,在两个有序数字里找到中位数,可以考虑现在其中一个将k分为p+q=k,这样每次可以丢掉很大一部分。那么p和q的取值很有讲究方法一:随机选取class Solution { public double findMedianSortedArrays(int[] ...
2019-06-22 23:59:19 121
原创 Trapping Rain Water & Container With Most Water & Product of Arrary & Trapping Rain Water II 小结
Trapping Rain Water & Container With Most Water & Product of Arrary 的解题在于使用双指针和保存最值Trapping Rain Waterclass Solution { public int trap(int[] height) { int len=height.length;...
2019-06-22 17:18:49 134
原创 3sum & 4sum & 3sum closest小结
这类问题暴力方法就是一层循环套着一层循环,所以 3sum 的时间复杂度就是O(n3),4sum的时间复杂度就是O(n4);那么对于里面的两层循环可以做一个优化,想要做优化前需要对已有的数组排序,然后再使用双指针,所以可以总结两点算法优化的小技巧:排序+双指针3sumclass Solution { public List<List<Integer>> ...
2019-06-22 15:38:05 89
原创 31. Next Permutation
这类题目多数都需要多用些例子找出规律,结合自己的分析和猜测不断去验证自己规律的正确性,如果没有例子,很难看懂别人写的最优解的代码。这道题目的规律是:从后往前扫描,找到不满足num[i-1]>=num[i]的第一个数,然后此位置之前的从后往前扫面第一个大于此数字的数交换位置,第三步是对交换位置的后半部分进行reverse操作。这道题目我自己的解法是交换位置后对后面的数字进行了重新排序,...
2019-06-19 18:08:52 111
原创 常见排序算法实现java
冒泡排序 (稳定)public static void B(int nums[]){ for(int i=nums.length-1;i>0;i--){ for(int j=0;j<i;j++){ if(nums[j]>nums[j+1]){ int temp=n...
2019-06-15 08:37:27 115
原创 找出一个数组中第k大的数
方法一:使用第一个位置的一趟快速排序class Solution { public int findKthLargest(int[] nums, int k) { return Partion(nums,k-1,0,nums.length-1); } int Partion(int nums[],int k,int start,int end){...
2019-06-09 11:57:09 737
原创 LRU的实现
class Node<K,V> { Node pre; Node next; K k; V v; Node(K k,V v){ this.v=v; }}class LRUCache<K,V> { int size; HashMap<K, Node> map = null; ...
2019-06-02 20:37:23 85
原创 b树和b+树的区别
a,B树中同一键值不会出现多次,并且它有可能出现在叶结点,也有可能出现在非叶结点中。而B+树的键一定会出现在叶结点中,并且有可能在非叶结点中也有可能重复出现,以维持B+树的平衡。b,因为B树键位置不定,且在整个树结构中只出现一次,虽然可以节省存储空间,但使得在插入、删除操作复杂度明显增加。B+树相比来说是一种较好的折中。c,B树的查询效率与键在树中的位置有关,最大时间复杂度与B+树相同(在叶结...
2019-04-29 23:21:18 106
208道 java 高频面试题和答案 源于 公众号【菜鸟的名企梦】
一、Java 基础1.JDK 和 JRE 有什么区别?2.== 和 equals 的区别是什么?3.两个对象的 hashCode()相同,则 equals()也一定为 true,对吗?4.final 在 java 中有什么作用?5.java 中的 Math.round(-1.5) 等于多少?6.String 属于基础的数据类型吗?7.java 中操作字符串都有哪些类?它...
2019-04-13 10:53:26 347
原创 面试题集合-其他(1)
(1)如何避免开发过程中linux和windows下路径拼接不一致的问题https://blog.csdn.net/weixin_39921821/article/details/82344725(2)强软弱虚引用https://www.cnblogs.com/benchao/p/5435598.html(3)tcp一对一,udp多对一https://www.cnblogs.com/...
2019-04-13 10:52:53 118
原创 java基础1
(1)Java提高篇——JVM加载class文件的原理机https://www.cnblogs.com/Qian123/p/5707562.htmlhthttps://blog.csdn.net/javazejian/article/details/73413292(2)什么是类加载器https://www.cnblogs.com/dongguacai/p/5879931.html...
2019-04-13 10:52:28 128
原创 hibernate缓存机制
https://www.cnblogs.com/shanmu/p/3598509.html缺点:hibernate的二级缓存默认不支持分布式缓存的,使用memchae,redis等中央缓存来替代二级缓存。
2019-04-06 16:32:51 123
原创 AOP是什么,用它做什么
AOP:面向切面编程 核心原理:使用动态代理的设计模式,在执行方法前后或出现异常做加入相关逻辑;我们主要使用AOP来做(1)事务处理:执行方法前开启事务,执行方法后关闭事务,出现异常后回滚事务;(2)权限判断:在执行方法前判断是否有权限;(3)日志:在执行前,进行日志处理;.......
2019-04-06 09:58:50 786
原创 数据库优化之分表
分表分为水平(按行)分表和垂直分表(按列)根据经验,Mysql表数据一般达到百万级别,查询效率会很低,容易造成表锁,甚至堆积很多连接,直接挂掉;水平分表能够很大程度减少这些压力。如果一张表中某个字段值非常多(长文本,二进制等),而且只有在很少的情况下会查询,这时候就可以把字段多个单独放到一个表,通过外键关联起来;考试详情,一般我们只关注分数,不关注详情。1,按时间分表这种分表方...
2019-04-05 10:06:08 211
原创 索引使用的小技巧:
索引弊端:1占用磁盘空间2对dml(删除、修改、插入)有影响,会变慢使用场景:(a)肯定在where条件经常使用,如果不做查询就没有意义;(b)该字段的内容不是唯一的几个值(c)字段内容不是频繁变化的...
2019-04-05 09:40:58 141
原创 数据库优化创建合适的索引
索引(index)是帮助DBMS高效获取数据的数据结构。分类:普通索引;唯一索引;主键索引;全文索引普通索引:允许重复值的出现唯一索引:除了不能有重复的纪录外,其他和普通索引一样(用户id,身份证,email,tel)主键索引:是随着设定主键而创建的,也就是把某个列设定为主键的时候就会给该列创建索引,这就是主键索引,唯一且没有null值全文索引:用来对表中的文本域(char,v...
2019-04-05 09:28:20 298
原创 选择合适的数据库引擎
myisam存储引擎:如果表对事务要求不高,同时是以查询和添加为主的,我们考虑使用myisam存储引擎,比如:BBS中的发帖表和回复表。INNODB存储引擎:对事务要求高,保存的数据都是重要数据,我们建议使用INNODB,比如订单表,账号表。Memory存储引擎:我们数据变换频繁,不需要入库,同时又频繁的查询和修改,我们考虑使用memory,速度极快。...
2019-04-05 00:13:30 335
Improving iForest with Relative Mass.pdf
2019-08-18
Dynamic Density Based Clustering.pdf
2019-08-18
Clustering by fast search and find of density peaks.pdf
2019-08-18
domingues-outlier-detection-evaluation.pdf
2019-07-07
flink-1.3.0-bin-hadoop2-scala_2.10.tgz
2019-07-07
Aljoscha-Krettek-The-Future-of-Apache-Flink.pdf
2019-07-07
A Novel Scalable DBSCAN Algorithm with Spark
2019-07-07
春招&秋招面经
2018-11-02
c++面试题题目集锦
2018-11-02
praat 语音软件使用手册
2018-01-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人