liubin2018的博客

记录学习所获

进程与线程的区别

进程:进程就是正在运行程序的抽象描述,也是系统资源分配和调度的独立单元。可以将进程想象作一个容器,该容器里装有运行某个程序所需的上下文,上下文是由程序正确运行该程序所需的状态组成的。这些状态包括存放在内存中的程序的代码和数据,栈,寄存器,程序计数器,环境变量以及打开的文件描述符等。线程:线程是CP...

2018-05-08 20:28:13

阅读数 33

评论数 0

并发与并行

并发:是指在时间上重叠的逻辑流。在单核处理器上各逻辑流并不是真正意义上的并行,只是内核提供给我们的错觉,好似我们这条逻辑流正独占CPU。为了更好理解,见下图:假设内存中有A,B,C,D四道程序,各自拥有自己的逻辑控制流。在单核处理器中,只有一个物理程序计数器,因此在每个程序运行时,它的逻辑程序计数...

2018-05-02 13:47:37

阅读数 39

评论数 0

互斥量实现

互斥量是一个可以处于两态之一的变量:加锁和解锁,这意味着一个二进制位就可以表示他,但在实现中,常常使用一个整型变量,0表示解锁,而其他所有的值表示加锁。互斥量使用两个过程。1.当一个线程或者进程想要访问临界区时,它调用mutex_lock。如果该互斥量当前是解锁的,此调用成功,该线程进入临界区。另...

2018-04-27 23:44:53

阅读数 272

评论数 0

一致性哈希

我们在讲解一致性哈希前,先来了解缓存的应用场景,这样,我们才能理解得更为透彻,而不是看完转眼就忘。假设我们现在手头上有两台服务器,分别为A,B,用来存储文件2,文件3,文件4,文件5。我们希望这几个文件均匀分布在两台服务器上,以便缓解服务器压力并提升查询速度。同学们都知道这时应该用哈希,用哈希函数...

2018-04-26 23:17:02

阅读数 57

评论数 1

Leetcode:Container With Most Water 最大水容器

Given n non-negative integers a1, a2, ..., an, where each represents a point at coordinate (i, ai). n vertical lines are drawn such that the two endp...

2018-04-22 20:05:05

阅读数 94

评论数 0

Leetcode:Palindrome Number 回文数字

Determine whether an integer is a palindrome. An integer is a palindrome when it reads the same backward as forward.Example 1:Input: 121 Output: true...

2018-04-22 15:28:35

阅读数 62

评论数 0

Leetcode:Longest Palindromic Substring

Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000.Example 1:Input: "babad&a...

2018-04-22 15:09:47

阅读数 25

评论数 0

有效的数独

判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。上图是一个部分填充的有效的数独。数独部分空格内已填入了数字,空白格用 '.'...

2018-04-20 15:16:31

阅读数 88

评论数 0

map下标操作符

map是C++ STL中非常好用的关联容器,在我们的代码中,可以非常方便的运用下标操作符[]来操作它。但是搞技术不能浅尝辄止,不仅要会用,还得知道其原理。不过其原理略为复杂,底层实现RB_tree不仅在树形的平衡上表现不错,具有稳定的对数平均时间O(lgn)的表现,在实现复杂度上也是惊人,这就导致...

2018-04-20 13:07:32

阅读数 235

评论数 0

leetcode:只出现一次的数字

给定一个整数数组,除了某个元素外其余元素均出现两次。请找出这个只出现一次的元素。  备注: 你的算法应该是一个线性时间复杂度。 你可以不用额外空间来实现它吗? 初看这个题目,也许大部分同学的思路是保存各个元素出现的次数,然后找出出现次数为1的元素。 但其实还有种...

2018-04-19 18:20:41

阅读数 827

评论数 0

两个数组的交集 II

给定两个数组,写一个方法来计算它们的交集。 例如: 给定 nums1 = [1, 2, 2, 1], nums2 = [2, 2], 返回 [2, 2]. 注意:    输出结果中每个元素出现的次数,应与元素在两个数组中出现的次数一致。   我们可以不考虑输出结果的顺序。 ...

2018-04-19 18:09:20

阅读数 493

评论数 2

leetcode:买卖股票的最佳时机 II

题目: 假设有一个数组,它的第 i 个元素是一个给定的股票在第 i 天的价格。 设计一个算法来找到最大的利润。你可以完成尽可能多的交易(多次买卖股票)。然而,你不能同时参与多个交易(你必须在再次购买前出售股票)。 思路:贪心算法,总是做出在当前看来是最好的选择,不从整体最优上加以考虑,...

2018-04-19 17:17:22

阅读数 4529

评论数 1

leetcode:从排序数组中删除重复项

题目要求:给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 可能大部分会C++的同学看到这个题目的第一反应就是用到STL中的se...

2018-04-19 16:46:37

阅读数 117

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭