Java 并发-编程基础
一、易混淆概念
1. 进程和线程
进程是操作系统分配资源的最小单元,线程是操作系统调度的最小单元。
一个程序下至少有一个进程,一个进程至少有一个线程,一个进程下也可以有多个线程来增加程序的执行速度。
2. 并行和并发
并行: 多个处理器或多核处理器同时处理多个任务。
并发: 多个任务在同一个 CPU核上,按细分的时间片轮流执行,由于时间间隔较短,使人感觉两个任务都在运行。
二、...
算法 —「排序」十大排序算法汇总
一、选择排序
1. 思想
将最 小/大 的数交换到待排序序列的最前面。
首先,找到数组中最小的那个元素,其次,将它和数组的第一个元素交换位置(如果第一个元素就是最小元素那么就和自己交换)。在剩下的元素中找到最小的元素,将它与数组的第二个元素交换位置。如此往复,直到将整个数组排序。这种方法叫做选择排序,因为它在不断地选择剩余元素之中的最小者。
2. 图解过程
3. 核心代...
Leetcode —「综合问题」系列题解
跳台阶
Leetcode - 70 Climbing Stairs (Easy)
假设到达台阶顶部有 n 个台阶,每次只能跳 1 个或者 2 个台阶,计算总共有多少跳到台阶顶部的方案。
Input: 3
Output: 3
Explanation: There are three ways to climb to the top.
1. 1 step + 1 step + 1 step...
算法 —「图」知识点完全汇总
一、什么是图?
图是一种比树结构更复杂的非线性结构。在图结构中,任意两个结点之间都可能相关,即结点之间的邻接关系可以是任意的。因此,图结构被用于描述各种复杂度的数据对象,在自然科学、社会科学和人文科学等许多领域有着非常广泛的应用。
图由一个顶点集合 V 和一条边(或者弧)集合 E 组成,通常记为 G = (V, E)。
二、相关术语
1. 无向图
在一个图中,如果任意两...
Leetcode —「链表」系列题解
反转链表
Leetcode - 206 Reverse Linked List (Easy)
Input: 1->2->3->4->5->NULL
Output: 5->4->3->2->1->NULL
解法一:递归
public ListNode reverseList(ListNode head) {
if (...
Leetcode —「图」系列题解
课程表
Leetcode - 207 Course Schedule (Medium)
题目描述:选课时总共有 n 门课程,但是有些课程需要先修其它课程,给定课程数量与先修课程关系,判断是否能够将课程修完。
Input: 2, [[1,0],[0,1]]
Output: false
Explanation: There are a total of 2 courses to take....
共计 85 篇文章,11 页。