
基础复习
CUGToda
「我已经学不会放弃了。」by「进击的巨人」三笠
展开
-
排序总结之冒泡排序 + 选择排序 + 插入排序 + 快速排序 + 堆排序
1、冒泡排序(Bubble Sort)冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。//冒泡排序的一种写法,小的数字向前冒泡,两两比较两两交换 public static voi...原创 2019-03-19 16:15:52 · 424 阅读 · 0 评论 -
最长回文子序列:区别于最长回文串,其序列不要求是连续的 !
在这个地方看到的这个问题:https://github.com/Snailclimb/JavaGuide/blob/master/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E4%B8%8E%E7%AE%97%E6%B3%95/%E6%90%9E%E5%AE%9ABAT%E9%9D%A2%E8%AF%95%E2%80%94%E2%80%94%E5%87%A0%E9%8...原创 2019-03-24 13:15:59 · 1915 阅读 · 0 评论 -
2019年快手笔试编程题:
题目一:判断输入的一组数据,构建二叉树,能否满足是满二叉搜索树package writtenExam;import java.util.Scanner;/** * @author hadoop *输入一组数,形式大概为:12,10,15,12,13,15,11 *判断其能否满足一颗二叉搜素数:man二叉树,假如中序遍历的话会是输出有序数组 */public class Ku...原创 2019-03-31 16:26:36 · 748 阅读 · 0 评论 -
Java中volatile关键字的最全总结
https://blog.youkuaiyun.com/u012723673/article/details/80682208 https://www.cnblogs.com/keeya/p/9255136.html原创 2019-04-05 17:19:47 · 503 阅读 · 0 评论 -
Java 多线程通信最全总结
参考资料:https://github.com/crossoverJie/JCSprout/blob/master/MD/concurrent/thread-communication.md深入理解线程通信 https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/Java%20%E5%B9%B6%E5%8F%91.md#...原创 2019-04-06 15:57:58 · 501 阅读 · 0 评论 -
2019年Tencent 笔试编程题
目录题目一:最少硬币问题题目二: 字符串消除题目一:最少硬币问题问题描述Mr_he 因讨厌马云而彻底放弃网购,他的日常用品都要到商场去购买,而且必须付现金。但是现 金购买,经常会遇到找零的问题,那么现在请你帮助他解决这样一个问题: 现在 Mr_he 手上有 n 种不同面值的硬币,每种硬币有无限多个。为了方便购物,他希望带尽量 少的硬币,但是要能组合出 1 到 m 之间的...原创 2019-04-06 20:50:31 · 360 阅读 · 0 评论 -
Java实现WordCount,按照行读取
题目有一个文件,里面每一行都是一个字符串,要对所有字符串进行统计,然后排列。(先不考虑内存不够的情况)1思路这个题,在不考虑内存不够的情况下,其实是很简单的,主要涉及到的知识点有两个: * Java IO * Comparator先看代码然后来看知识点public class StringCount { public static void m...原创 2019-03-28 14:25:50 · 936 阅读 · 0 评论 -
Java并发之线程池
线程池原理线程池核心参数线程池线程数量配置线程池的关闭方式线程池中的线程复用原理原创 2019-04-07 21:12:13 · 468 阅读 · 3 评论 -
ThreadPool中线程复用原理
为了弄懂线程池中的线程复用原理,详读了下面资料:https://mp.weixin.qq.com/s/jISHo8-aKMPjjeCYGJILgg Java线程池线程复用的秘密 https://blog.youkuaiyun.com/u011531613/article/details/61921473 Java并发编程:线程池的使用(非常棒,通俗易懂) https://blog.csdn...原创 2019-04-08 11:06:26 · 512 阅读 · 0 评论 -
二叉树的前序遍历、中序遍历、后序遍历的非递归实现方式
2019年4月13日17:20:51 今天上午华为面试的手撕代码题目!感触良多!// 前序遍历 ,递归写法 public void frontTraversal(treeNode node) { if (node != null) { System.out.print(node.data+" "); frontTra...原创 2019-04-13 17:24:32 · 446 阅读 · 0 评论 -
用三行代码实现一个排序(字符串排序 + 数组排序 + Lambd简单写法 + int数组List数组互换)
用三行代码就可以实现一个排序最近看JDK8中的Lambda表达式,可以把以前写过的字符串排序代码缩短到一行代码;想起来试试用来做做排序;总结一下一下几个点的知识:用Collections进行排序,1、传统的new Comparator重写compare方法 2、用Lambda表达式 用Stream,实现int[ ] + integer[ ] + List<Integer> ...原创 2019-04-21 15:46:47 · 467 阅读 · 0 评论 -
找工作杂谈(一)2019年春招复习资料总结
目录写在最前面:几类复习提纲式的GitHub项目面试中遇到了的一些问题我常看的一些技术栈和博客最后几句废话:写在最前面:很重要的是怎么沟通,我认为,面试不是面试官VS我,应该是面试官+我VS problem。 不仅是面试,也可以在日常生活中的处事方式上用这一点!沟通不是 someone VS 我,应该是 someone + 我VS 问题。很遗憾很...原创 2019-05-13 17:29:58 · 1075 阅读 · 1 评论 -
KMP算法详解:使用部分匹配表PMT来理解KMP算法,使用Java实现
有些算法,适合从它产生的动机,如何设计与解决问题这样正向地去介绍。但KMP算法真的不适合这样去学。最好的办法是先搞清楚它所用的数据结构是什么,再搞清楚怎么用,最后为什么的问题就会有恍然大悟的感觉。我试着从这个思路再介绍一下。大家只需要记住一点,PMT是什么东西。然后自己临时推这个算法也是能推出来的,完全不需要死记硬背。KMP算法的核心,是一个被称为部分匹配表(Partial Match Ta...原创 2019-03-23 14:15:50 · 3488 阅读 · 5 评论 -
关于逆序的解决思想: 栈(先进后出)+ 递归(先执行后结束)+ 其他
关于字符串的反转:(1)双指针遍历,互换;(2)借助外部空间,使用栈来存 (3)递归反转 (4)stringbuffer自带方法关于链表的逆序输出:(1)借助外部空间,使用栈来存(2)使用递归来输出 (3)变双向链表就行感觉主要考点还是递归的思想:关于链表的逆序输出://使用递归,倒序输出链表 public void reversePrint(Node node)...原创 2019-03-23 13:53:43 · 400 阅读 · 0 评论 -
类的加载过程详解:加载、验证、准备、解析、初始化
想要弄明白的知识点: 类加载的过程,加载、验证、准备、解析、初始化。每个部分详细描述。 加载阶段读入.class文件,class文件时二进制吗,为什么需要使用二进制的方式? 验证过程是防止什么问题?验证过程是怎样的?加载和验证的执行顺序?符号引用的含义? 准备过程的静态成员变量分配空间和设置初始值问题。 解析过程符号引用替代为直接引用细节相关。 ...原创 2019-03-29 17:15:34 · 1662 阅读 · 0 评论 -
JAVAf复习之JVM
参考文章:https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/Java%20%E8%99%9A%E6%8B%9F%E6%9C%BA.md#minor-gc-%E5%92%8C-full-gc参考课程:https://www.bilibili.com/video/av33910105一、运行时数据区域程序计...原创 2019-03-19 20:56:40 · 534 阅读 · 0 评论 -
Partition函数的理解以及Java实现 + 快速排序的多种实现
本文参考了《算法导论》及如下博客:http://blog.jobbole.com/105219/https://blog.youkuaiyun.com/AA2519556/article/details/77884962https://www.cnblogs.com/zuilehongdou/p/6197716.htmlhttp://haoyuanliu.github.io/2016...原创 2019-03-17 12:50:22 · 1826 阅读 · 1 评论 -
基于Partition函数实现查找数组中第K小的数+第K大的数
我们都知道经典的快速排序就是首先用 partition 将数组分为两部分,然后分别对左右两部分递归进行快速排序,过程如下:public void quickSort(int arr[],int left ,int right) { if (left>=right)//递归终止的条件 { return; } int mid = partition2(arr,...原创 2019-03-17 13:02:55 · 774 阅读 · 0 评论 -
求数组中的[ 最大子序列和] Java实现
参考的问题是这篇博客中的一些经典问题,分别自己来实现:https://blog.youkuaiyun.com/han_xiaoyang/article/details/11969497 最大子序列和这里把最大子序列和放在第一个位...原创 2019-03-17 13:07:14 · 1169 阅读 · 0 评论 -
三种方法实现字符串的翻转
package Findwork;import java.util.Scanner;/** * @author hadoop * 利用两种方法实现字符串 的 反转 */public class reverseStr { public static void main(String[] args) { // TODO Auto-generated method stub ...原创 2019-03-17 15:53:59 · 1499 阅读 · 0 评论 -
LCS问题一:输出两个字符串的最长公共子串(Longest Common Substring)
回到最常见的字符串问题了,这里的找两个字符串的最长公共子串,要求在原字符串中是连续的。其实和上面两个问题一样,这里依旧可以用动态规划来求解,其实博主自己也不大擅长动态规划,但是可以仿照上面的思路来操作。我们采用一个二维矩阵来记录中间的结果。这个二维矩阵怎么构造呢?直接举个例子吧:"bab"和"caba",则数组如下: b a bc 0 0 0...原创 2019-03-17 16:01:09 · 5127 阅读 · 0 评论 -
LPS问题:找出字符串中的最长回文字符串
利用LCS(最长公共子串)解决方法来解决LPS问题:首先用到了一个结论:对于串S,假设它反转后得到的串是S',那么S的最长回文串是S和S'的最长公共字串。 例如S=babcbabcbaccba,S'=abccabcbabcbab,S和S'的最长公共字串是abcbabcba也是S的最长回文字串。存在问题:输入123321125775165561,输出165561。但是存...原创 2019-03-17 17:20:06 · 426 阅读 · 0 评论 -
字节跳动二面手写:输出一组数据中的差值为K的数对(Java HashMap 实现)
字节跳动笔试题1——在n个元素的数组中,找到差值为k的数字对去重后的个数开始想的方法一和方法二排序去重均漏掉了下列输入输出情况输入 :4 0 1 2 1 2正确输出:2方法一方法二输出:0 (去重了)package Findwork;import java.util.HashMap;import java.util.Iterator;imp...原创 2019-03-24 20:08:39 · 611 阅读 · 0 评论 -
Java 的集合类:(常用为vector ArrayList stack linkedlist HashMap hashtable)
Java 的集合类:(常用为vector ArrayList stack linkedlist hashmap hashtable)关于Arraylist的使用说明在demo25、demo26中关于linkedlist的使用说明在demo27关于vector的使用说明也在demo27list类的几个代表(ArrayList linkedlist vector stack )v...原创 2019-03-25 10:49:07 · 290 阅读 · 0 评论 -
最长不重复子串:要求得到一个字符串的最长不重复子串的长度 LNRS(Longest no repeating substring)
最长不重复子串题目传送门:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/solution/很好理解,即求一个串内最长的不重复子串。package Findwork;import java.util.HashMap;import java.util.HashSet;...原创 2019-03-25 16:19:41 · 544 阅读 · 0 评论 -
LCS问题二:输出两个字符串的最长公共子序列(Longest Common Subsequence)
参考博客: https://blog.youkuaiyun.com/han_xiaoyang/article/details/11969497 https://blog.youkuaiyun.com/hrn1216/article/details/51534607 https://blog.youkuaiyun.com/qiximiao123/article/details/80637755这才是笔试面试中出现频度最...原创 2019-03-18 21:24:41 · 1350 阅读 · 0 评论 -
使用两个线程交叉打印奇偶数的几种写法
1、使用volatile变量来控制,不需要用锁,效率较高但是比较耗资源public class CrossNum { public volatile int num = 1; public volatile boolean flag = false; public static void main(String[] args) { Cro...原创 2019-05-31 21:08:47 · 1399 阅读 · 0 评论