leetcode-71. 简化路径
71. 简化路径
1234567891011121314151617181920212223242526272829303132333435class Solution { public String simplifyPath(String path) { Stack<String> stack = new Stack<>(); String[] arr = path.split("/"); for(String s : arr){ if (s.equals("")) { continue; } if (s.equals(".")) { continue; } if (s.equals("..")) ...
leetcode-83. 删除排序链表中的重复元素
83. 删除排序链表中的重复元素
12345678910111213class Solution { public ListNode deleteDuplicates(ListNode head) { ListNode pre = head; while(pre!=null && pre.next != null){ if(pre.next.val == pre.val){ pre.next = pre.next.next; }else{ pre = pre.next; } } return head; }}
leetcode-54. 螺旋矩阵
54. 螺旋矩阵
12345678910111213141516171819202122232425262728class Solution { public List<Integer> spiralOrder(int[][] matrix) { List<Integer> ans = new ArrayList<>(); int m = matrix.length; int n = matrix[0].length; // 定义是否被访问过 boolean[][] visit = new boolean[m][n]; // 定义四个方向 int[][] direction = new int[][]{{0,1},{1,0},{0,-1},{-1,0}}; int total = m*n; int i ...
leetcode-剑指 Offer 13. 机器人的运动范围
剑指 Offer 13. 机器人的运动范围
123456789101112131415161718192021222324252627282930313233343536373839404142434445class Solution { int ans = 0; Set<Integer> set = new HashSet<>(); public int movingCount(int m, int n, int k) { dfs(0, 0, m, n, k); return ans; } public void dfs(int i, int j, int m, int n, int k) { if (judge(i, j, m, n, k)){ if (!set.contains(i * n + j)){ ans++; set.add(i * n ...
leetcode-146. LRU 缓存机制
146. LRU 缓存机制
123456789101112131415161718192021222324252627282930313233class LRUCache { int capacity = 0; LinkedList queue = new LinkedList<Integer>(); Map<Integer, Integer> map = new HashMap<>(); public LRUCache(int capacity) { this.capacity = capacity; } public int get(int key) { if(!map.containsKey(key)){ return -1; } queue.remove((Integer) key); queue.offerFirst(key); r ...
mysql笔记08-sql查询到提交事务流程复习
sql查询到提交事务流程复习
问题综述:
undo log和redo log了解过吗?它们的作用分别是什么?
redo log是如何保证事务不丢失的?
mysql的事务是先提交还是先刷盘?
更新操作为什么不直接更新磁盘反而设计这样一个复杂的InnoDB存储引擎来完成?
Mysql架构图和InnoDB存储引擎图
流程图解析
前台用户各种操作触发后台sql执行
通过web项目中自带的数据库连接池:如dbcp、c3p0、druid等,与数据库服务器的数据库连接池建立网络连接;数据库连接池中的线程监听到请求后,将接收到的sql语句通过SQL接口响应给查询解析器,查询解析器将sql按照sql的语法解析出查询哪个表的哪些字段,查询条件是啥;再通过查询优化器处理,选择最优的该sq最优的一套执行计划,然后执行器负责调用存储引擎的一系列接口,执行该计划而完成整个sql语句的执行。
InnoDB存储引擎-缓冲池中完成更新的基本操作
具体执行这些执行计划得要存储引擎来完成,如图所示,首次更新users表中id=10的这条数据,缓冲池中一开始肯定没有该条数据的,得要先从磁盘 ...
透视http协议-02四层七层网络协议
TCP/IP 网络分层模型
TCP/IP层次图
第一层叫“链接层”(link layer),负责在以太网、WiFi 这样的底层网络上发送原始数据包,工作在网卡这个层次,使用 MAC 地址来标记网络上的设备,所以有时候也叫 MAC层。
第二层叫“网际层”或者“网络互连层”(internet layer),IP 协议就处在这一层。因为IP 协议定义了“IP 地址”的概念,所以就可以在“链接层”的基础上,用 IP 地址取代MAC 地址,把许许多多的局域网、广域网连接成一个虚拟的巨大网络,在这个网络里找设备时只要把 IP 地址再“翻译”成 MAC 地址就可以了。
第三层叫“传输层”(transport layer),这个层次协议的职责是保证数据在 IP 地址标记的两点之间“可靠”地传输,是 TCP 协议工作的层次,另外还有它的一个“小伙伴”UDP。
TCP 是一个有状态的协议,需要先与对方建立连接然后才能发送数据,而且保证数据不丢失不重复。而 UDP 则比较简单,它无状态,不用事先建立连接就可以任意发送数据,但不保证数据一定会发到对方。两个协议的另一个重要区别在于数据的形式。TCP 的数据 ...
透视http协议-01HTTP是什么笔记
HTTP是什么?HTTP又不是什么?
HTTP 是超文本传输协议,也就是HyperText Transfer Protocol。 是一个用在计算机世界里的协议,它使用计算机能够理解的语言确立了一种计算机之间交流通信的规范,以及相关的各种控制和错误处理方式。
问题:
你是怎么理解 HTTP 字面上的“超文本”和“传输协议”的?
http协议是一个双向协议
"超文本"是超越了普通文本的文本,图片、音频、视频等,最关键的是含有超链接
能否谈一下你对 HTTP 的认识?越多越好。
HTTP 是一个用在计算机世界里的协议,它确立了一种计算机之间交流通信的规范,以
及相关的各种控制和错误处理方式。
HTTP 是一个在计算机世界里专门在两点之间传输文字、图片、音频、视频等超文本数据的约定和规范
HTTP 是构建互联网的重要基础技术,它没有实体,依赖许多其他的技术来实现,但同
时许多技术也都依赖于它
HTTP 有什么特点?有什么优点和缺点?
HTTP 专门用来在两点之间传输数据,不能用于广播、寻址或路由。
HTTP 下层都有哪些协议?是如何 ...
leetcode-792. 匹配子序列的单词数
792. 匹配子序列的单词数
12345678910111213141516171819202122232425262728293031323334353637383940414243444546class Solution { Set<Character> set = new HashSet<>(); Set<String> set2 = new HashSet<>(); public int numMatchingSubseq(String S, String[] words) { int ans = 0; for (int i = 0; i < S.length(); i++) { set.add(S.charAt(i)); } for (String word: words) { if (set2.contains(word) || compare(S, w ...
leetcode-1104. 二叉树寻路
1104. 二叉树寻路
1234567891011121314151617181920212223242526272829303132333435363738394041class Solution { List<Integer> ans = new ArrayList<>(); public List<Integer> pathInZigZagTree(int label) { // 层数 int n = 1; int x = label; while (x / 2 != 0) { x = x / 2; n++; } int tmp = label; while (n > 0) { ans.add(tmp); int max = (int)Math.pow(2, n) - 1; ...