Lcof29

Lcof 29. 顺时针打印矩阵

输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。

示例 1:

​ 输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]
​ 输出:[1,2,3,6,9,8,7,4,5]
示例 2:

​ 输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]
​ 输出:[1,2,3,4,8,12,11,10,9,5,6,7]

Read more
MySQL

数据库原理

SQL语言的分类

  1. DQL 数据查询语言

    DQL基本结构是由SELECT子句,FROM子句,WHERE子句组成的查询块。

  2. DML 数据操纵语言

    DML主要有三种形式:INSERT,UPDATE,DELETE。

  3. DDL 数据定义语言

    用来创建数据库中的各种对象—–表、视图、索引、同义词、聚簇等,如:
    CREATE TABLE/VIEW/INDEX/SYN/CLUSTER。

  4. DCL 数据控制语言

    DCL用来授予或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果,对数据库实行监视等。

Read more
MQ

消息队列

顺序消费

不同消息中间件的解决方案不同。

RocketMQ提供了MessageQueueSelector选择机制,可以使用SelectMessageQueueByHash,是同一个订单发送到 同一个队列中,再使用同步发送,只有同个订单的创建消息发送成功,再发送支付消息,即保证了发送有序。

Read more
Lcof25

Lcof 25.合并两个排序的链表

输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。

示例1:

​ 输入:1->2->4, 1->3->4
​ 输出:1->1->2->3->4->4

Read more
Lcof24

Lcof 24.反转链表

定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。

示例:

​ 输入: 1->2->3->4->5->NULL
​ 输出: 5->4->3->2->1->NULL

双指针迭代

class Solution {
public ListNode reverseList(ListNode head) {
ListNode pre = null;
ListNode cur = head;
while (cur != null) {
ListNode tmp = cur.next;
cur.next = pre;
pre = cur;
cur = tmp;
}
return pre;
}
}

递归

class Solution {
public ListNode reverseList(ListNode head) {
//递归终止条件是当前为空,或者下一个节点为空
if(head==null || head.next==null) {
return head;
}
//这里的cur就是最后一个节点
ListNode cur = reverseList(head.next);
//这里请配合动画演示理解
//如果链表是 1->2->3->4->5,那么此时的cur就是5
//而head是4,head的下一个是5,下下一个是空
//所以head.next.next 就是5->4
head.next.next = head;
//防止链表循环,需要将head.next设置为空
head.next = null;
//每层递归函数都返回cur,也就是最后一个节点
return cur;
}
}

DistributedTransaction

分布式事务

事务简介

  • 事务是用来保证一组数据操作的完整性和一致性
  • 事务必须满足ACID的四大特性(待补全)
  • 事务具有四种隔离级别(待补全)
  • 事务具有七种传播行为(待补全)
Read more