自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

crazyliu的博客

一个脱离高级趣味的人

  • 博客(118)
  • 收藏
  • 关注

原创 CSAPP Lab5: Malloc

本文为USTC SSE CSAPP 2020 Fall实验三的记录,仅供参考PPT链接在这里:Lab 5.pptx 代码在这里mm2.cmm3.c版本一代码如下(无注释 注释请看版本二):/* * mm-naive.c - The fastest, least memory-efficient malloc package. * * In this naive approach, a block is allocated by simply in...

2021-01-19 15:00:31 3

原创 CSAPP Lab4: Performance Lab

本文为USTC SSE CSAPP 2020 Fall实验三的记录,仅供参考PPT链接在这里:Lab 4.pptx 代码在这里kernels.c

2020-12-30 22:44:56 25

原创 CSAPP Lab3: Buffer Bomb

本文为USTC SSE CSAPP 2020 Fall实验三的记录,仅供参考PPT链接在这里:CSAPP Lab3:BufferBomb

2020-12-26 22:57:12 51 3

原创 CSAPP Lab2:Binary Bomb

本文为USTC SSE CSAPP 2020 Fall实验二的记录,仅供参考,最后是第6题暴力破解的源代码下面是第6题暴力破解的源代码:import osimport itertoolsimport subprocessr = [1, 2, 3, 4, 5, 6]rr = list(itertools.permutations(r))print("len:", len(rr))an.

2020-12-23 09:04:23 55

原创 CSAPP LAB1: Data Lab

本文为USTC SSE CSAPP 2020 Fall的实验报告,lab1已做完,但没有进行后续的优化,运算符数量不是最优,仅供参考,源代码在最后最后附上所有代码:/* * CS:APP Data Lab * * <Please put your name and userid here> * 刘辉 SA20225302 * bits.c - Source file with your solutions to t

2020-12-23 08:58:19 42

原创 6.828 2020 Lab1 MapReduce 实验

1. MapReduce论文关于这片论文没啥好说的,有地方不懂得可以看课程的视频( B站有 ), MapReduce论文翻译。具体工作过程可参见下图:2. Lab 大致内容整个Lab要完成的代码文件有三个:1. Master.go 即负责分配Map和Reduce任务的主进程2. RPC.go 由于 Worker 需要通过RPC 与 Master 进程 通信,故在此放置 ...

2020-04-09 16:24:17 210

原创 LeetCode: 子集

给定一组不含重复元素的整数数组nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例:输入: nums = [1,2,3]输出:[ [3],[1],[2],[1,2,3],[1,3],[2,3],[1,2],[]]class Solution {public: // n 个元素的子集个数共 2...

2019-08-23 22:11:09 39

原创 LeetCode: 路径总和 II

给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。说明:叶子节点是指没有子节点的节点。示例:给定如下二叉树,以及目标和sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \ ...

2019-08-21 22:16:11 54

原创 LeetCode: 从中序与后序遍历序列构造二叉树

根据一棵树的中序遍历与后序遍历构造二叉树。注意:你可以假设树中没有重复的元素。例如,给出中序遍历 inorder =[9,3,15,20,7]后序遍历 postorder = [9,15,7,20,3]返回如下的二叉树: 3 / \ 9 20 / \ 15 7/** * Definition for a binary tree ...

2019-08-19 22:25:53 78

原创 LeetCode: 从前序与中序遍历序列构造二叉树

根据一棵树的前序遍历与中序遍历构造二叉树。注意:你可以假设树中没有重复的元素。例如,给出前序遍历 preorder =[3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树: 3 / \ 9 20 / \ 15 7/** * Definition for a binary tree n...

2019-08-19 22:08:58 71

原创 大桶小桶装水问题

今天看到一个小学的一个益智题,题目如下: 你有一个四升的水桶和一个九升的水桶,并且你有一个有水的水池.你最少需要多少步才能正好装满六升的水?当然这个题不是很难,但是可以引申到一般情况,对于两个大小为 m 和 n 的桶,他们所能装的水可以去那些值?容易得知,取值范围为[0, m+n], 借助一些例子可以发现,所能取到的值为 m 和 n 的最大公约数的倍数。后面简单写了个程序...

2019-08-16 22:33:43 297

原创 LeetCode: 区间合并

给出一个区间的集合,请合并所有重叠的区间。示例 1:输入: [[1,3],[2,6],[8,10],[15,18]]输出: [[1,6],[8,10],[15,18]]解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].示例2:输入: [[1,4],[4,5]]输出: [[1,5]]解释: 区间 [1,4] 和 [4,5] 可被视为重叠区间。...

2019-07-25 20:04:14 64

原创 LeetCode: 旋转图像

给定一个 n×n 的二维矩阵表示一个图像。将图像顺时针旋转 90 度。说明:你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。示例 1:给定 matrix =[ [1,2,3], [4,5,6], [7,8,9]],原地旋转输入矩阵,使其变为:[ [7,4,1], [8,5,2], [9,6,3]...

2019-07-24 20:22:30 32

原创 1122. 数组的相对排序

给你两个数组,arr1 和arr2,arr2中的元素各不相同arr2 中的每个元素都出现在arr1中对 arr1中的元素进行排序,使 arr1 中项的相对顺序和arr2中的相对顺序相同。未在arr2中出现过的元素需要按照升序放在arr1的末尾。示例:输入:arr1 = [2,3,1,3,2,4,6,7,9,2,19], arr2 = [2,1,4,3,9...

2019-07-21 20:03:41 512

原创 LeetCode: 单值二叉树

如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。只有给定的树是单值二叉树时,才返回true;否则返回 false。示例 1:输入:[1,1,1,1,1,null,1]输出:true示例 2:输入:[2,2,2,5,2]输出:false提示:给定树的节点数范围是[1, 100]。每个节点的值都是整数,范围为[0, 99]。/**...

2019-07-12 19:40:45 39

原创 LeetCode: 二叉树的层次遍历 和

给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。例如:给定二叉树:[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层次遍历结果:[ [3], [9,20], [15,7]]/** * Definition for a binary tre...

2019-07-12 19:28:49 45

原创 LeetCode: 合并两个有序链表

将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4struct ListNode* mergeTwoLists(struct ListNode* l1, struct ListNode* l2){...

2019-07-10 20:09:23 66

原创 LeetCode: 合并两个有序数组

给定两个有序整数数组nums1 和 nums2,将 nums2 合并到nums1中,使得num1 成为一个有序数组。说明:初始化nums1 和 nums2 的元素数量分别为m 和 n。你可以假设nums1有足够的空间(空间大小大于或等于m + n)来保存 nums2 中的元素。示例:输入:nums1 = [1,2,3,0,0,0], m = 3nums2 = ...

2019-07-10 19:19:54 56

原创 C++ const 总结

C++const 允许指定一个语义约束,编译器会强制实施这个约束,允许程序员告诉编译器某值是保持不变的。如果在编程中确实有某个值保持不变,就应该明确使用const,可以减少奇怪的BUG。1. 修饰普通成员变量对于指针和引用类型,const一般分为顶层const和底层const。顶层const就是表示自己本身是常量,不能改变。底层const就是表示自己所引用的或指向的是常量,不能改变自己指...

2019-05-25 16:38:39 39

原创 C++ 虚函数

一般继承(无虚函数覆盖)#include<iostream>using namespace std;class Base { public: virtual void f() { cout << "Base::f" << endl; } virtual void g() { cout << "Bas...

2019-05-23 12:44:33 31

原创 LeetCode: 矩阵置0

给定一个mxn的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0。请使用原地算法。示例1:输入: [ [1,1,1], [1,0,1], [1,1,1]]输出: [ [1,0,1], [0,0,0], [1,0,1]]示例2:输入: [ [0,1,2,0], [3,4,5,2], [1,3,1,5]]...

2019-05-13 11:05:08 110

原创 深入解析二分查找

在写代码的过程中经常会用到二分查找,不论是刷题还是写业务代码。虽然它的思想简洁,作用强大,但不一定你就能很好的掌握它。过去一直被二分查找和二分查找的变种的边界条件困扰,今天一并整理他们的边界条件。1. 二分查找int binary_search_equal(int *nums, int size, int target){ int temp; int left = 0, righ...

2019-05-10 16:53:20 195

原创 LeetCode:在排序数组中查找元素的第一个和最后一个位置

给定一个按照升序排列的整数数组nums,和一个目标值target。找出给定目标值在数组中的开始位置和结束位置。你的算法时间复杂度必须是O(logn) 级别。如果数组中不存在目标值,返回[-1, -1]。示例 1:输入: nums = [5,7,7,8,8,10], target = 8输出: [3,4]示例2:输入: nums = [5,7,7,8,8,1...

2019-05-08 12:20:03 94

原创 LeetCode: 旋转链表

给定一个链表,旋转链表,将链表每个节点向右移动k个位置,其中k是非负数。示例1:输入: 1->2->3->4->5->NULL, k = 2输出: 4->5->1->2->3->NULL解释:向右旋转 1 步: 5->1->2->3->4->NULL向右旋转 2 步: 4->...

2019-05-08 09:30:59 41

原创 LeetCode: 搜索二维矩阵

编写一个高效的算法来判断mxn矩阵中,是否存在一个目标值。该矩阵具有如下特性:每行中的整数从左到右按升序排列。 每行的第一个整数大于前一行的最后一个整数。示例1:输入:matrix = [ [1, 3, 5, 7], [10, 11, 16, 20], [23, 30, 34, 50]]target = 3输出: true示例2:输...

2019-05-08 08:54:18 70

原创 LeetCode: 下一个排列

实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须原地修改,只允许使用额外常数空间。以下是一些例子,输入位于左侧列,其相应输出位于右侧列。1,2,3→1,3,23,2,1→1,2,31,1,5→1,5,1首先,我们观察到对于任何给定序列的降序,没有可能的下一个更...

2019-05-06 16:42:02 66

原创 LeetCode: 括号生成

给出n代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。例如,给出n=3,生成结果为:[ "((()))", "(()())", "(())()", "()(())", "()()()"]冥冥中感觉到应该用递归,但是就是提炼不出递归的不变式,递归真是个简单而强大的东西,不过要真正掌握却很难!class Solutio...

2019-05-03 15:05:22 47

原创 LeetCode: 四数之和

给定一个包含n个整数的数组nums和一个目标值target,判断nums中是否存在四个元素a,b,c和d,使得a+b+c+d的值与target相等?找出所有满足条件且不重复的四元组。注意:答案中不可以包含重复的四元组。示例:给定数组 nums = [1, 0, -1, 0, -2, 2],和 target = 0。满足要求的四元组集合...

2019-05-03 14:33:06 70

原创 LeetCode: 最接近的三数之和

给定一个包括n个整数的数组nums和 一个目标值target。找出nums中的三个整数,使得它们的和与target最接近。返回这三个数的和。假定每组输入只存在唯一答案。例如,给定数组 nums = [-1,2,1,-4], 和 target = 1.与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2).class Solution {p...

2019-05-03 14:15:42 56

原创 LeetCode: 三数之和

给定一个包含n个整数的数组nums,判断nums中是否存在三个元素a,b,c ,使得a + b + c =0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1], [-1, -1, 2]]这道题其实不难,一定...

2019-05-03 12:32:46 39

原创 LeetCode: 最长公共前缀

编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串""。示例1:输入: ["flower","flow","flight"]输出: "fl"示例2:输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。说明:所有输入只包含小写字母a-z。class Solution {p...

2019-05-02 19:26:16 53

原创 LeetCode: 盛最多水的容器

给定n个非负整数a1,a2,...,an,每个数代表坐标中的一个点(i,ai) 。在坐标内画n条垂直线,垂直线i的两个端点分别为(i,ai) 和 (i, 0)。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且n的值至少为 2。图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(...

2019-05-02 18:57:49 56

原创 LeetCode: 后序遍历

给定一个二叉树,返回它的后序遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3 输出: [3,2,1]进阶:递归算法很简单,你可以通过迭代算法完成吗?/** * 递归版本 * Definition for a binary tree node. * struct TreeNode { * i...

2019-05-02 18:44:37 71

原创 LeetCode: 前序遍历

给定一个二叉树,返回它的前序遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,2,3]进阶:递归算法很简单,你可以通过迭代算法完成吗?/** * 递归版本 * Definition for a binary tree node. * struct TreeNode { * in...

2019-05-01 12:17:44 127

原创 LeetCode: 中序遍历

给定一个二叉树,返回它的中序遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3输出: [1,3,2]进阶:递归算法很简单,你可以通过迭代算法完成吗?/** * 递归版本 * Definition for a binary tree node. * struct TreeNode { * int val;...

2019-05-01 12:08:46 97

原创 LeetCode:字符串转换整数 (atoi)

请你来实现一个atoi函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。该字符串除了有效的整数部分之后也可能会存在多余的字符,这些字符可...

2019-05-01 11:21:53 111

原创 LeetCode: 两数相加

给出两个非空的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -...

2019-04-28 23:30:44 33

原创 操作系统的进程调度方法

二. 彩票调度(lottery scheduling)

2019-04-08 10:17:27 175

转载 操作系统中的进程

1. Process and Program By loading the code and static data into memory, by creating and initializing a stack, and by doing other work as related to I/O se...

2019-03-27 15:25:57 156

原创 Flask Blueprint蓝图错误处理与api 编码

今天在写Blog的api时,遇到了几个问题。第一个是Blueprint的错误处理,在Flask中,是没有办法去用errorhandler去提供Blueprint级别的错误捕捉的。实例代码如下@api.errorhandler(404)def not_found(e): return jsonify({error=404, message='服务器发生错误!'}), 400上...

2019-03-22 23:10:00 697

空空如也

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

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