
java
wkays
这个作者很懒,什么都没留下…
展开
-
《疯狂java》NIO
1.Buffer相关一般使用CharBuffer和ByteBuffer,三个重要的概念:容量(capacity)、界线(limit)和位置(position);两个重要方法:flip()为读数据做好准备、clear()为再次装入数据做准备。/** BufferTest.java* Version 1.0.0* Created on 2019年12月6日* Copyright wkay...原创 2019-12-06 10:10:07 · 248 阅读 · 0 评论 -
eclipse使用小技巧总结
工欲善其事必先利其器,eclipse的小技巧学习,看起来想入门的。一、解决代码的自动提示问题:1、打开 Eclipse -> Window -> Perferences2、找到Java 下的 Editor 下的 Content Assist , 右边出现的选项中,有一个Auto activation triggers for Java:会看到只有一个”.”存在。表示:只有输入”...原创 2019-12-04 10:05:56 · 177 阅读 · 0 评论 -
总结:链表相关算法
《剑指offer》56页说道,链表应该是面试时被提及最频繁的数据结构,由此可见其重要性。本文将结合书中的题目,以及LeetCode中相关的题目,总结链表。...原创 2019-05-12 20:02:54 · 280 阅读 · 0 评论 -
《Coding Interview Guide》P330:认识布隆过滤器
题目:不安全网页的黑名单包含100亿个黑名单网页,每个网页的URL最多占用64B。现在想要实现一个网页过滤系统,利用该系统可以根据网页是否在黑名单上,请设计该系统。要求:1.该系统允许有万分之一以下的判断失误率。2.使用的额外空间不要超过30GB。...原创 2019-05-25 21:20:53 · 174 阅读 · 0 评论 -
《Coding Interview Guide》P335:只用2GB内存在20亿个整数中找到出现次数最多的数
题目:有一个包含20亿个全是32位整数的大文件,在其中找到出现次数最多的数。要求:1.内存限制为2GB。原创 2019-05-25 21:26:16 · 213 阅读 · 0 评论 -
《Coding Interview Guide》P336:40亿个非负整数中找到未出现的数
题目:32位无符号整数的范围是0 - 4294967295,现在有一个正好包含40亿个无符号整数的文件,所以在整个范围中必然有没出现过的数。可以使用最多1GB的内存,怎么找到所有没出现过的数?进阶:如果将上题的内存空间限制改为10MB,但是只用找到一个没出现过的数即可。...原创 2019-05-26 10:28:04 · 181 阅读 · 0 评论 -
总结:字符串经典算法
字符串的经典算法。原创 2019-05-22 17:06:35 · 2007 阅读 · 0 评论 -
删除无序单链表中值重复出现的节点
题目:给定一个无序单链表的头结点head,删除其中值重复出现的节点。例如:1->2->3->3->4->4->2->1->1->null,删除重复的节点之后为1->2->3->4->null。思路:利用哈希表。时间复杂度为O(n),额外空间复杂度为O(n)。头节点是直接放入HashSet中的,因为肯定不重复。当...原创 2019-05-26 20:33:39 · 715 阅读 · 1 评论 -
两个单链表生成相加链表
原始题目:You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and re...原创 2019-05-27 21:16:02 · 497 阅读 · 0 评论 -
《剑指offer》面试题62:圆圈中最后剩下的数字
题目:0,1,2…n-1这n个数字拍成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字,求剩下的最后一个数字。例如0,1,2,3,4这5个数字组成的圈,每次删除第3个数字,一次删除2,0,4,1,因此最后剩下的是3。思路:最直接的思路是用环形链表模拟圆圈,通过模拟删除过程,可以得到最后剩下的数字,那么这道题目就变成了删除链表中某一个节点。假设总节点数为n,删除一个节点需要走m步,那么这种...转载 2019-05-23 20:17:02 · 257 阅读 · 0 评论 -
《剑指offer》面试题66:构建乘积数组
题目:给定数组A[0,1…n-1],求B[0,1…n-1],要求B[i] = A[0]*A[1]…A[i-1]*A[i+1]…A[n-1],不能使用除法。思路:使用纯乘法,还有更高效的思路。定义C[i]=A[0]*A[1]…A[i-1],那么C[i]=C[i-1]A[n-1];定义D[i]=A[i+1]…A[n-2]*A[n-1],那么D[i] =D[i+1]*A[i+1];因此C[i],D[...原创 2019-05-23 20:44:03 · 181 阅读 · 0 评论 -
超级基础的编程题50道
题目1:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少?程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21…java代码如下:package jichu50;import java.util.Scanner;public class number1 { public st...原创 2019-08-21 15:14:22 · 528 阅读 · 0 评论 -
总结:栈和队列相关
栈和队列相关总结。原创 2019-05-16 19:28:41 · 180 阅读 · 0 评论 -
《剑指offer》面试题61:扑克牌中的顺子
从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。其中A为1,J为11,Q为12,K为13,而大小王为0,且大小王能够当做任意一张牌。思路:1.首先应该对数组进行排序。2.统计数组中大小王(0)出现的个数。3.统计数组中所有相邻数之间的间隔。4.同时还需要排除对子的情况,如果出现了对子,那么肯定不可能是顺子(0除外)。5.最后比较0的个数和间隔大小,如果0的个数大于等...原创 2019-05-21 21:26:20 · 499 阅读 · 0 评论 -
Java 中的句柄、引用、指针与对象
首先要分清是在什么地方讨论,在以前学C时,是这么区分:(1)指针是对象在内存中的地址;(2)引用是对象的别名,其实质就是功能受限但是安全性更高的指针;(3)句柄是指针的指针,句柄实际上是一个数据,是一个Long (整长型)的数据。句柄是一个标识符,是拿来标识对象或者项目的,它就象我们的姓名一样。Windows是一个以虚拟内存为基础的操作系统。在这种系统环境下,Windows内存管理器经常在...转载 2019-03-18 09:50:50 · 975 阅读 · 0 评论 -
Java几个关键字原理与用法
Java中的transient、instanceof、volatile、synchronized、final、static、const 原理及用法。1.transientjava 的transient关键字为我们提供了便利,你只需要实现Serilizable接口,将不需要序列化的属性前添加关键字transient,序列化对象的时候,这个属性就不会序列化到指定的目的地中。Java trans...转载 2019-03-26 11:18:47 · 343 阅读 · 0 评论 -
《剑指offer》面试题2:实现Singleton单例模式
题目:设计一个类,我们只能生成该类的一个实例。思路:1.饿汉式:单例实例在类装载时就构建,急切初始化。(预先加载法)优点1.线程安全 。2.在类加载的同时已经创建好一个静态对象,调用时反应速度快。缺点资源效率不高,可能getInstance()永远不会执行到,但执行该类的其他静态方法或者加载了该类(class.forName),那么这个实例仍然初始化2....原创 2019-04-01 10:14:51 · 233 阅读 · 0 评论 -
问答社区笔记(SpringBoot+MySQL+Redis)
最近开始学习仿网上商城的一些东西,开一个博客,记录这个过程中的一些知识点和疑问,方便之后总结,加油!原创 2019-04-02 10:21:01 · 282 阅读 · 0 评论 -
《剑指offer》面试题65:不用加减乘除做加法
题目:不用加减乘除做加法写一个函数,求两个正数之和,要求在函数体内不能使用四则运算符号。思路:不能用四则运算,那只能通过位运算了。其实四则运算是针对十进制,位运算是针对二进制,都能用于运算。下面以0011(即3)与0101(即5)相加为例说明1.两数进行异或: 0011^0101=0110 这个数字其实是把原数中不需进位的二进制位进行了组合2.两数进行与: 0011&01...转载 2019-04-15 18:46:51 · 279 阅读 · 0 评论 -
[LeetCode] 2.Add Two Numbers 两个数字相加
You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return i...转载 2019-04-15 19:45:50 · 298 阅读 · 0 评论 -
Dijkstra最短路径实现(java)
1.算法解决的问题:从某个源点到其余各顶点的最短路径问题。该算法并不是一下子就求出了源点到终点的最短路径,而是一步步求出它们之间顶点的最短路径,过程中都是基于已经求出的最短路径的基础上,求得更远顶点的最短路径,最终得到你要的结果。/Dijkstra算法,求有向网G的v0顶点到其余顶点v最短路径P[v]及带权长度D[v]。 P[v]的值为前驱顶点下标,D[v]表示v0到v的最短路径长度和。/V...原创 2019-04-13 16:16:55 · 439 阅读 · 0 评论 -
总结:各种查找方法
查找包括顺序查找、二分查找、哈希表查找和二叉排序树查找。这里将全部用java代码实现。在这里插入代码片原创 2019-04-24 19:35:03 · 558 阅读 · 0 评论 -
总结:堆结构
堆结构非常重要。因此特别记录一下有关堆结构的知识点。原创 2019-05-19 15:43:01 · 719 阅读 · 0 评论 -
总结:位运算
位运算也是一个不容忽视的部分。在《剑指offer》99页,提到进制,而且有一个例子:在微软产品Excel中,用A表示第1列,B表示第2列,……,Z表示26列,AA表示27列,AB表示28列……依次类推。请写出一个函数,输入用字母表示的列号编码,输出它是第几列。自己想了一下,java实现代码如下:package chapter2;public class P99_ExcelNumber ...原创 2019-05-20 21:17:03 · 170 阅读 · 0 评论 -
《剑指offer》面试题64:求1+2+……+n
题目要求:求1+2+…+n,要求不能使用乘除法,for,while,if,else,switch,case等关键词及条件判断语句?:。解题思路:不能用循环,那么可以使用递归调用求和。但又不能使用if,结束条件如何生效?可以使用如下形式替代if语句替代if的一种方式:boolean b=判断条件&&(t=递归执行语句)>0基于以上分析,java参考代码如下:pac...转载 2019-05-10 21:25:43 · 137 阅读 · 0 评论 -
《剑指offer》目录(Java篇)(持续更新中……)
说明:随着写的题目多了,整个博客显得有些杂乱无章,学着其他博主,建立一个目录,方便自己快速能找到相应的题目。再者,可以从这次整理中,将以前的只用C++代码写过的题目增添Java版,也是相当于再梳理一次全书。工程量还是挺大的,继续前行,哈哈。参考ryderchan的博客,将所有题目分别按照类别和《剑指offer》(第二版)题目对应的页码进行整理。按照类别顺序分析字符串类页号题目...原创 2019-02-18 11:00:00 · 594 阅读 · 0 评论