一个二维矩阵,里面只有0和1,问怎样求指定某一个格与它数字相同的连通格子个数

一个二维矩阵,里面只有0和1,问怎样求指定某一个格与它数字相同的连通格子个数 记录一下  感觉效率不高 int iter(int x, int y, vector>& nums, vector>& dp){     int lenX = nums.size();   ...

2016-03-18 11:08:22

阅读数 2802

评论数 0

printf缓存问题

转载至:http://www.cnblogs.com/zackyang/archive/2010/01/19/1651929.html#include <stdio.h> #include <sys/types.h> #include <unistd.h>int...

2016-01-10 21:18:42

阅读数 458

评论数 0

return和exit

return和exit标签(空格分隔): APUE  在每个函数结束之后,习惯上都会return一下。而在main函数里面,既可以用return,也可以用exit来结束进程。现在来看看return到底做了什么。   先写一个简单的C程序:#include<stdio.h> i...

2016-01-10 20:31:17

阅读数 397

评论数 0

软链接和硬链接

软链接和硬链接标签(空格分隔): APUE linux的文件系统里面,链接分为软链接和硬链接。现在ubuntu里面实际看一下,两者有什么区别。  先说在命令行里面怎么实现软链接和硬链接:  touch file : 改变file的时间戳,如果file不存在,则新建file.  ln file...

2015-12-23 21:48:17

阅读数 388

评论数 0

MIT6.828 LAB4 PartB

JOS LAB4 PartB   PartB主要讲述了fork的写时复制的实现,为了满足实现的要求,需要page_fault的实现,即页面异常处理。          这里主要实现几个系统调用函数,以供后面的fork实现调用。这些系统调用都比较简单。这里就看下 sys_exofork的...

2015-12-08 20:26:31

阅读数 1416

评论数 0

MIT6.828 Lab4 PartA

lab4地址:https://pdos.csail.mit.edu/6.828/2014/labs/lab4/   lab4主要是讲多核处理器的系统的实现,主要包括3个part,多核系统的实现,fork,和任务抢断。

2015-11-04 21:47:23

阅读数 2441

评论数 0

JOS 轮转调度实现

JOS的轮转调度思想比较简单,当env[i]进程来调用sched_yield()函数的时候,表示进程i要让出CPU了,此时,系统会从i开始,不停的往下寻找状态为runnable的进程,然后执行那个进程。

2015-11-04 21:19:27

阅读数 811

评论数 0

JOS大内核锁

JOS lab4里面,采用了SMT的操作系统,所以可能存在两个CPU同时进入内核态,虽然CPU之间的内核栈,但是多核同步可能还是会出现问题,所以JOS采用大内核锁来锁住整个内核,使得每次只有一个CPU会进入内核,另外的CPU如果申请进入内核态,是进不去的。

2015-11-03 22:29:37

阅读数 761

评论数 0

JOS 系统调用的过程

系统调用,是用户态进程转向内核态的一种安全机制,在保证了内核空间安全并且不被破坏的的前提下,让用户态程序可以实现一定的功能。 通过JOS系统,来看系统调用的具体过程。 系统调用,在语言层面来看,其实可以把系统调用看成是一种函数的调用。只是这种函数调用,不同于一般的用户态下的函数调用,用户态下,函数...

2015-09-14 20:15:50

阅读数 1917

评论数 0

JOS 系统中第一个用户进程的建立和运行

一:进程的表示: 在jos系统里面,进程用一个struct结构体Env来存储相应的信息,这个ENV的结构体有点类似于进程描述符一类的东西。 struct Env { struct Trapframe env_tf; // Saved registers struct Env *env_li...

2015-09-11 21:22:53

阅读数 1274

评论数 0

leetcode Sort List

sort list: https://leetcode.com/problems/sort-list/ 数组的排序比较相对于链表的,还是比较容易的。链表的排序,有一个最麻烦的地方就是,无法通过下标来访问节点,所以操作起来就没有数组那么方便。 链表排序,拿到这题,第一个想到的是快排。快排...

2015-09-05 14:43:49

阅读数 381

评论数 0

二叉树遍历-----前序后序迭代遍历的新思路

leetcode二叉树遍历 前序遍历:https://leetcode.com/problems/binary-tree-preorder-traversal/ 中序遍历:https://leetcode.com/problems/binary-tree-inorder-traversal/ 后序...

2015-09-04 17:29:43

阅读数 353

评论数 0

ELF文件格式学习

最近的lab里面有ELF文件相关的,所以成这个几乎,学点ELF的东西。 ELF,是一种文件格式。暂时,只看可执行文件的ELF文件格式。 首先,给出文件的格式的布局图: 光看这个很难理解,所以写一个小的程序,用readelf来结合的看。 程序比较简单: #include #include i...

2015-08-30 12:22:55

阅读数 1205

评论数 0

MIT6.828 JOS系统 lab2

MIT6.828 LAB2:http://pdos.csail.mit.edu/6.828/2014/labs/lab2/ LAB2里面主要讲的是系统的分页过程,还有就是简单的虚拟地址到物理地址的过程。关于系统分页,在MIT6.828 虚拟地址转化为物理地址——二级分页中有讲。 下面主要是lab...

2015-08-19 21:52:31

阅读数 5508

评论数 0

MIT6.828 虚拟地址转化为物理地址——二级分页

Mit6.828 Lab2:http://pdos.csail.mit.edu/6.828/2014/labs/lab2/ lab2主要讲虚拟内存->物理内存的变换,通过一定的函数来实现软件MMU的部分。 整个地址转化的过程如下图所示: 首先,明确一点,在程序里面的所有地址,都是虚拟地址...

2015-08-06 20:14:35

阅读数 2106

评论数 0

leetcode39 Combination Sum

Combination Sum  :https://leetcode.com/problems/combination-sum 这道题目由于数据量比较大,所以好的方法和差的方法时间上来说,差非常的多。 这道题目的主要要求就是:给定一个数组,和一个数T,要求用数组里面的数进行组合,使组合出来的数的和...

2015-08-05 21:48:03

阅读数 344

评论数 0

控制台下的计算器——C++实现

最近这段时间看操作系统的东西看的头晕脑胀的,所以先停个一晚上,写个命令行式的计算器,来练练栈的使用。 首先,分析一下要完成的东西。输入肯定使用string类来输入的,然后第一步,就是把string的字符串转化成数字存储起来。转化的这个数字存储是中序表达式,由于运算符有优先级的问题,中序表达式直接计...

2015-07-30 20:53:57

阅读数 1139

评论数 1

136 Single Number

题目地址:https://leetcode.com/problems/single-number/ 题目:Given an array of integers, every element appears twice except for one. Find that single one....

2015-07-05 13:20:25

阅读数 379

评论数 0

6.828 lab1 bootload

第一个练习,主要是让我们熟悉汇编,嗯,没什么好说的。 Part 1: PC Bootstrap 首先,整个实验使用qemu这款模拟软件来,来对代码进行调试,相当于我们在qemu这个模拟的计算机平台上,运行自己的程序。可以再qemu这个软件上进行gdb的调试,比较方便。 首先看下整个内核在q...

2015-06-16 14:18:40

阅读数 1716

评论数 0

函数调用时程序堆栈的变化

这个主要写一点关于在C里面,堆栈是怎么保存数据的,以及调用函数时,堆栈指针的变化。 首先说明两个寄存器 1.rbp:栈帧指针,具体应该是指向当前函数栈的栈底,是不动的。实际的作用应该就是类似于一个基址,通过这个基址上栈中变量的寻址。 2.rsp:栈顶指针。 首先,写了一个比较简单的C程序: #...

2015-06-14 21:25:19

阅读数 4480

评论数 1

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