![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 96
胖瑗
这个作者很懒,什么都没留下…
展开
-
面试题之海量数据处理
海量数据处理:1.给定40亿个不重复的无符号数,没排过序。给一个无符号数,如何快速判断一个数是否在这40亿个数中? 第一种:位图 第二种:布隆过滤器 原理: 2.给一个超过100G大小的lo...原创 2020-03-23 21:49:17 · 182 阅读 · 0 评论 -
JavaWeb——网络
网络属于操作系统一部分局域网(LAN) Local Area NetWork 交换机广域网(Wan Wide Area NetWork) 路由器服务器(Sever提供资源的人)客户端(Client)分层原因:(封装/职责的隔离)DNS(Domain Name Servics) 类似将www.baidu.com转为百度的地址TCP/IP:(五层协议)应用...原创 2020-01-05 11:34:32 · 208 阅读 · 0 评论 -
Create 给定一个链表,每个节点包含一个额外增加的随机指针,该指针可以指向链表中的任何节点或空节点。 要求返回这个链表的深拷贝。
1.Create 给定一个链表,每个节点包含一个额外增加的随机指针,该指针可以指向链表中的任何节点或空节点。 要求返回这个链表的深拷贝。 (浅拷贝只能拷贝值)class Solution { public Node copyRandomList(Node head) { if(head==null){ return null; ...原创 2019-07-28 09:24:44 · 503 阅读 · 0 评论 -
双向链表的删除与插入
1.双向链表(第一个节点的前驱结点为空,最后一个节点的后继节点为空)class Node { int val; Node next;//后继引用 Node prev;//前驱引用 Node(int val) { this.val = val; }}public class MyLinkedList { private No...原创 2019-07-28 19:55:15 · 314 阅读 · 0 评论 -
按X分割链表
分割链表将一个链表按X的大小,将小于X的结点放在X结点的左边,大于等于的在右边解决方法:建立两个新链表,分别用来存储大于等于X及小于X的结点,最后进行拼接1.首先分别建立两个新链表及指向两个新链表最后一个元素的引用Node smaller=null;Node bigger=null;Node lastSmall=null;Node lastBig=null;Node cu...原创 2019-07-29 16:33:49 · 153 阅读 · 0 评论 -
返回链表的中间结点,若中间有两个结点,则返回后一个结点(两种方法)
1.先遍历整个链表,求出链表长度,在进行循环找出中间结点public class Solution { public ListNode middleNode(ListNode head) { int len=0; for(ListNode cur=head;cur!=null;cur=cur.next) len++;//遍历算出链表长度 ListNode node=...原创 2019-07-29 16:42:32 · 332 阅读 · 0 评论 -
求链表的倒数第K个结点
1.循环遍历链表count,然后再利用循环从头结点出发,循环count-k次,即为倒数第k个结点public class Solution { public ListNode FindKthToTail(ListNode head,int k) { int count=0; ListNode node=head; for(ListNode cur=head;cur!=nu...原创 2019-07-29 16:53:46 · 67 阅读 · 0 评论 -
回文链表
回文链表是指从头遍历与从后遍历得到的结点顺序一致解决方法:找到链表的中间结点,将链表的后半边结点进行逆置,然后比较public class PalindromeList { public ListNode getMid(ListNode head) { ListNode fast = head; ListNode slow = head; ...原创 2019-07-29 17:06:44 · 419 阅读 · 0 评论 -
删除所有重复元素,不保留结点
解决办法:定义三个引用(分别指向头结点的前驱结点prev和头结点p1以及下一节点p2)如果p1的值与p2的值相同,则三个引用分别向后走否则p2进行移动直至与p1的值不同public class Solution { public ListNode deleteDuplication(ListNode pHead) { if (pHead == null) { r...原创 2019-07-29 17:27:06 · 198 阅读 · 0 评论 -
数据库--队列和栈练习题
1.用队列实现栈解题思想:队列为一边进另一边出,而栈为一边进一边出,所以要实现栈必须要使队列中除队尾元素之外,进行循环尾插到队尾,来实现出栈import java.util.LinkedList;class MyStack { private LinkedList<Integer> queue;//定义一个链表类的引用queue public My...原创 2019-09-20 17:41:54 · 154 阅读 · 0 评论 -
二叉树的前序遍历(两种方法)
1.遍历的思想(根左右)注意:1.每次都要进行将链表清空; 2.记录的位置需要放在后面)class Solution { List<Integer> list=new ArrayList<>(); private void preorder(TreeNode root){ if(root!=null){...原创 2019-09-21 14:58:31 · 797 阅读 · 0 评论 -
数据库--排序(直接插入排序 希尔排序 直接选择排序 双向选择排序 堆排序 冒泡排序)
排序算法1.直接插入排序 每次从无序区间的第一和元素开始,依次与有序区间内的元素从后往前比较 。如果当前有序区间内的元素大于无序区间,则将有序区间该下标元素后移 插入 public static void insertSort(int[] array) { //有序区间:[0,i) //无序区间:[i,array.length) ...原创 2019-09-25 22:54:15 · 735 阅读 · 0 评论 -
堆
二叉树的顺序存储 使用数组保存二叉树结构,方式即将二叉树用层序遍历方式放入数组中。 一般只适合表示完全二叉树,因为非完全二叉树会有空间的浪费。这种方式的主要用法就是堆的表示。 完全二叉树结点之间与数组下标的关系:在已知双亲结点的情况下左孩子下标:left=2*parent+1 右孩子结点:right=2*parent=2 2.已知左孩子或者有孩...原创 2019-09-27 21:49:15 · 302 阅读 · 0 评论 -
数据库——优先级队列(堆的应用)(外加TOPK问题 面试常考问题)
一.概念 在很多应用中,我们通常需要按照优先级情况对待处理对象进行处理,比如首先处理优先级最高的对象,然后处理次高的对象。在这种情况下,我们的数据结构应该提供两个最基本的操作,一个是返回最高优先级对象,一个是添加新的对象。 这种数据结构就是优先级队列(Priority Queue) 二.优先级队列的实现方式——堆三.操作 1.入队列(以小堆为例) <1....原创 2019-09-27 22:41:08 · 267 阅读 · 0 评论 -
链表的环与相交问题
1.给定一个链表,判断链表中是否有环(定义两个引用,快慢指针,最终会相遇的)public class Solution { public boolean hasCycle(ListNode head) { ListNode fast=head; ListNode slow=head; do{ if(fast==...原创 2019-07-28 08:43:37 · 94 阅读 · 0 评论 -
合并有序链表
1.新建一个链表,比较顺序尾插public merge(Node head1,Node head2){ Node result=null; Node l1=head1; Node l2=head2; Node last=null; while(l1!=null&&l2!=null) { if(l1.val<=l2.val) { Node nex...原创 2019-07-28 09:30:35 · 57 阅读 · 0 评论 -
删除链表中所有值为val的结点
新建一个链表将所有值不是val的结点进行尾插操作class Solution { public ListNode removeElements(ListNode head, int val) { ListNode result = null; ListNode cur = head; ListNode last=null;//用来记录当前链表的最后一...原创 2019-07-27 09:18:22 · 172 阅读 · 0 评论 -
数组练习题(冒泡排序 copyOf 移位 求平均值 偶数在前,奇数在后)
1.模拟实现Arrays.coptOfimport java.util.Arrays;public class jk{ public static void main (String[]args){ int [] a={1,2,3,4,5}; System.out.println(Arrays.toString(Arrays.copyOf(a,5))); } public ...原创 2019-07-19 15:16:57 · 216 阅读 · 0 评论 -
Java中程序的结构与逻辑控制 和⽅法的定义与使⽤
一.程序的逻辑控制与结构1.分支结构<1.ifif(布尔表达式){}if(布尔表达式){}else{}if(布尔表达式){}else if{}else{}<2.switchswitch(数字|枚举|字符串){case内容1:{满足时的执行语句break;}case 内容2:{满足时的执行语句break;}.....原创 2019-07-17 15:52:36 · 160 阅读 · 0 评论 -
java——类和对象(上)
1.类与对象的定义及联系类:就是指共性的概念。对象:指的是⼀个具体的、可以使⽤的事物。⾸先产⽣类(类是⽣产对象的蓝图),⽽后才可以产⽣对象。对象的所有⾏为,⼀定在类中进⾏了完整的定义。例如:类就是自行车的实际图 对象就是自行车这个实体2.类的定义修饰符+class+类名{ 1.属性 2.方法 3.构造方法}注意:在一个文件夹中...原创 2019-07-20 15:32:45 · 88 阅读 · 0 评论 -
java——this 关键字及静态(static)属性/方法
一.this关键字1.在构造方法中调用其他构造方法调用构造方法时直接使用this(参数)class Person{ public String name; public Person(String n){ name=n; } public Person(){ this("陌生人"); }}2.通过this访问属性或方法访问普通方法时this.方法名称(参...原创 2019-07-21 22:24:19 · 709 阅读 · 0 评论 -
Date类
自写的date类实现class Date{ private int year; private int month; private int day; private static final int [] days_of_month={31,28,31,30,31,30,31,31,30,31,30,31}; public Date(int year,int month,int...原创 2019-07-22 14:27:16 · 102 阅读 · 0 评论 -
Date类的改进
1.主要对天数减少的算法做了改进,让用户在进行增加或者减少相同天数的情况下时得到两个不同的日期class Date{ private int year; private int month; private int day; private static final int [] days_of_month={31,28,31,30,31,30,31,31,30,31,30,31}...原创 2019-07-22 14:40:54 · 124 阅读 · 0 评论 -
Time类
1.Time类简单实现class Time{ private int hours; private int minute; private int second; public Time(int hours,int minute,int second){ if(hours<0||hours>23){ System.out.println("输入时不正确!");...原创 2019-07-22 16:24:30 · 232 阅读 · 0 评论 -
反转链表
例如:1->2->3->4->5反转之后;5->4->3->2->1class Solution { public ListNode reverseList(ListNode head) { ListNode result=null;//新建一个新链表 ListNode cur=head;...原创 2019-07-27 08:46:32 · 43 阅读 · 0 评论 -
java——对象的比较
java对象的比较主要有Object.equals Comparable Comparator1.==和equals比较 p == q 表示的是 p 和 q 两个引用指向同一个对象 p.equals(q) 表示 p 指向的对象 和 q 指向的对象是否是值语义相等的(使用时需要进行覆写例如下面的程序判断两张扑克牌:)public class Card { ...原创 2019-10-06 22:27:00 · 80 阅读 · 0 评论 -
JavaSE——搜索树BinarySearchTree&&实现电话薄
1.搜索树二叉搜索树又称二叉排序树,它或者是一棵空树**,或者是具有以下性质的二叉树: 若它的左子树不为空,则左子树上所有节点的值都小于根节点的值 若它的右子树不为空,则右子树上所有节点的值都大于根节点的值 它的左右子树也分别为二叉搜索树 搜索树主要实现三个操作 查询 插入 删除1.查询(根据二叉树的性质来进行)key值与根结点进行比较,等于则返回该节点...原创 2019-10-09 21:27:14 · 198 阅读 · 0 评论 -
JavaSE——Map&Set
1.Map方法及其功能代码模拟实现功能import java.util.Map;import java.util.TreeMap;public class MapDemo { public static void main(String[] args) { Map<String,String> map=new TreeMap<>();...原创 2019-10-09 21:35:42 · 110 阅读 · 0 评论 -
数据库——顺序表MyArrayList
顺序表顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。顺序表一般可以分为:1. 静态顺序表:使用定长数组存储。2. 动态顺序表:使用动态开辟的数组存储。在创建顺序表时,需添加它的属性size表示当前表内的元素个数class MyArrayList{ private int []array; priva...原创 2019-07-23 15:18:07 · 284 阅读 · 0 评论 -
数据库——链表LinkedList
链表链表是指一种物理存储结构上非连续,非顺序的存储结构,数据元素的逻辑顺序是通过链表中的引用链接次序实现的 头插 1.若插入的数据没有结点,现将数据写入一个新的结点Node node=new node();node.value=要写入结点的值;2.让新结点的下一个结点为原来的第一个结点node.next=head;3.更新新的头结点head=node; 尾插(...原创 2019-07-24 15:44:32 · 1371 阅读 · 0 评论 -
java 中数组的定义及使用
1.数组定义及初始化数组是指相同类型元素的集合类型 [] 数组名=new 类型[数组长度]类型 [] 数组名={...}类型 [] 数组名-new 类型{...}注意:在使用关键字new 定义数组长度时,若不进行赋值,则默认为0的该类型定义。2.获取数组的长度数组名.length3.引用类型数组实际是一个引用数据类型,而引用类型是一个线索,用来指向堆中存放的数据...原创 2019-07-18 15:37:00 · 220 阅读 · 0 评论