2 qxlxi

尚未进行身份认证

因为热爱,所以有所为 有所不为。

等级
TA的排名 1w+

【并发编程】生产者消费者3种方式

版本1 synchronized+notify+wait/** * @author i * @create 2019/12/29 14:57 * @Description 生产者消费者 1 版本 */class MyShareData{ private Integer count = 0;//资源 public synchronized void increme...

2019-12-29 22:22:51

【并发编程领域】3个线程依序打印ABC

大体思路:借助juc中Lock+Condition实现,通过一个变量来标志执行哪一个线程 condition中唤醒对应的线程。ABC线程形成一个环形 A-》B-》C-》A 如此反复就可以/** * @author i * @create 2019/12/29 16:03 * @Description ABC线程每次依序打印 ABCABC循环 10次 */class MySh...

2019-12-29 22:18:35

【并发编程领域】从volatile关键字到CAS以及ABA问题

1.volatile是什么volatile是java虚拟机提供的轻量级的同步机制 保证可见性 2.不保证原子性 3.禁止指令重排 2.JMM之可见性​ JMM(java内存模型Java Memory Model 简称JMM)本身是一种抽象的概念并不真实存在,他描述的是一组规则或规范,通过这组规范定义了程序中各个变量(包括实例字段、静态字段和构成数组对象的元素)的访问方式。JM...

2019-12-27 17:42:40

【数据结构与算法之美】7.排序算法之冒泡、选择、插入

package com.ncst.sort;/** * @author i * @create 2019/12/24 16:39 * @Description 排序 * 冒泡排序 */public class Sorts { /*** * 冒泡排序 * 案例: 6 5 4 3 1 2 * 第一轮 * 第一次 5 ...

2019-12-24 19:07:23

【leetcode】23.合并K个排序链表

合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。示例:输入:[1->4->5,1->3->4,2->6]输出: 1->1->2->3->4->4->5->61.不使用递归基本思路:我们可以使用分治思想 来解决这个问题。当一个链表集合中需要合并并排序。我们可以假设只有2个 每次合并两...

2019-12-21 20:30:05

【leetcode】141.环形链表

给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是-1,则在该链表中没有环。示例 1:输入:head = [3,2,0,-4], pos = 1输出:true解释:链表中有一个环,其尾部连接到第二个节点。1.快慢指针可以类比成两个运动员 在同一个环形运动场跑步,一个跑的快的 和 ...

2019-12-21 17:19:42

【数据结构与算法之美】6.环形队列

package com.ncst.queue;/** * @author i * @create 2019/12/20 15:29 * @Description 环形队列 */public class CircularQueue { private String[] data;//存储数据 private Integer size = 0;//大小 priv...

2019-12-20 16:44:54

【数据结构与算法之美】5.基于链表实现队列

package com.ncst.queue;/** * @author i * @create 2019/12/20 16:10 * @Description 基于链表实现队列 */public class QueueBaseOnLikedList { private Node head;//头结点 private Node tail;//尾结点 //入...

2019-12-20 16:43:47

【数据结构与算法之美】4.基于数组实现队列

package com.ncst.queue;/** * @author i * @create 2019/12/20 15:14 * @Description 利用数组实现队列 * */public class ArrayQueue { private String [] data;//存储数据 private Integer size = 0;//大小 ...

2019-12-20 16:42:36

【数据结构与算法之美】3.基于栈实现的浏览器前进和后退功能

package com.ncst.stack;import java.util.List;/** * @author i * @create 2019/12/19 21:34 * @Description * 使用前后栈实现浏览器的前进后退 * * 思路:创建两个栈空间 一个用来存储前后的页面goBackStack,一个用来记录后退的页面goForwardStack。一个...

2019-12-20 10:50:28

【数据结构与算法之美】2.基于链表实现的栈

package com.ncst.stack;/** * @author i * @create 2019/12/19 20:56 * @Description 基于链表实现栈 */public class StackBasedOnLinkedList<T>{ private Node top;//设置一个top 用来标记栈顶 //出栈 pu...

2019-12-19 21:10:18

【数据结构与算法之美】1. 基于数组实现的栈

1.基于数组实现的栈package com.ncst.stack;import com.ncst.array.Array;/** * @author i * @create 2019/12/19 19:47 * @Description */public class ArrayStack{ private Integer [] data;//存储数据 p...

2019-12-19 21:09:26

【leetcode】206.反转链表

反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题?//实现思路 //在遍历列表时,将当前节点的next指针改为指向前一个元素,由于节点没有引用其上一个节点,因此必须实现存储前一...

2019-12-19 16:59:32

【数据结构与算法之美】基于单链表LRU算法

我们维护一个有序单链表,越靠近链表尾部的节点是越早之前访问的,当有一个新的数据被访问时,我们从链表头开始顺序遍历链表。** 1.如果此数据之前在缓存在链表中了,我们遍历得到这个数据对应的节点,并将其从原来的位置删除,然后在插入到链表的头部。** 2.如果此数据中没有缓存链表中,可以分为两个情况** - 如果此时缓存没满,则将此节点直接插入到链表的头部。* - 如果此时缓存已满,则...

2019-12-19 10:39:14

【leetcode】35.搜索插入位置

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2实现思路: 使用二分查找就可以了。如果使用for循环的话,时间复杂度为O(n) 但是使用二分查找 时间复杂度就下降了很多,因此 注意边界的控制。1.当target与查询的mid...

2019-12-17 20:03:16

【leetcode】27.移除元素

给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 nums 中的前两个元素...

2019-12-16 16:55:50

【lc-database】196. 删除重复的电子邮箱

编写一个 SQL 查询,来删除 Person 表中所有重复的电子邮箱,重复的邮箱里只保留 Id 最小 的那个。±—±-----------------+| Id | Email |±—±-----------------+| 1 | john@example.com || 2 | bob@example.com ...

2019-12-11 16:37:03

【数据库领域】You can't specify target table 'Person' for update in FROM clause

delete from Person where id in (select max(id) from person group by Email having count(*)>1);在练习sql时 报错。原因delete和select不能同时执行 使用笛卡尔积自关联表 筛选出条件DELETE p1.*FROM Person p1, Person p2WHERE...

2019-12-11 16:33:40

【lc-database】183. 从不订购的客户

某网站包含两个表,Customers 表和 Orders 表。编写一个 SQL 查询,找出所有从不订购任何东西的客户。Customers 表:±—±------+| Id | Name |±—±------+| 1 | Joe || 2 | Henry || 3 | Sam || 4 | Max |±—±------+Orders 表:±—±------...

2019-12-11 16:14:19

【lc-database】181. 超过经理收入的员工

Employee 表包含所有员工,他们的经理也属于员工。每个员工都有一个 Id,此外还有一列对应员工的经理的 Id。±—±------±-------±----------+| Id | Name | Salary | ManagerId |±—±------±-------±----------+| 1 | Joe | 70000 | 3 || 2 | He...

2019-12-11 16:13:25

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 新人勋章
    新人勋章
    用户发布第一条Blink获赞超过3个即可获得
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。