摘要:
概述 程序都需要被加载到内存中才可以运行,在远古时代^_^,程序的内存只有非常非常小的几kb,如果要运行的程序很大,大到超过了内存,而且还想要运行这样的程序,要怎么做呢?如果在内存中同时运行几个程序,如何确保某个程序不会修改别的程序的内存中的值呢?以上的问题总结下来基本就三大核心问题: 进程之间如何 阅读全文
摘要:
概述 本文是介绍操作系统文章的第一篇,主要介绍计算机的硬件和软件构成,以及软硬件是如何配合工作的,操作系统在其中扮演的角色,本系列文章主要介绍操作系统的几个核心的问题,比如操作系统的内存管理,文件系统,进程调度等,由于我并不是一个专业的操作系统工程师,😄,所以写作的时候不会写很多书面语言,会使用通 阅读全文
摘要:
概述 继续刷题,本篇算法主要偏向字符串和数组部分 第二十五题 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针random指向一个随机节点),请对此链表进行深拷贝,并返回拷贝后的头结点。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空) 解 阅读全文
摘要:
概述 继续刷题。。。 第十七题 输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) 解题思路 这道题,一开始看可能会懵,这道题的关键就是先在A中找到B的根节点,当找到B的根节点之后,事情就简单了,就从这个根节点开始以相同的方式遍历A和B,然后比较,如果一致,就 阅读全文
摘要:
概述 继续刷题。。。 第九题 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 解题思路 这道题的名字叫做变态跳台阶问题,那为什么叫变态我就不知道了,其实和第8题思路差不多。 假设第一次青蛙跳1级,那剩余n-1级,也就是还有f(n-1)种 阅读全文
摘要:
概述 本文记录自己在刷剑指offer时候的解题,无他。。。 第一题 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 解题思路: 假设数组为: [[1 2 阅读全文
摘要:
本文参考: 算法从入门到“放弃”(10)- 堆排序 图解排序算法(三)之堆排序 推荐大家看这两篇文章,文章中图画的非常好,我觉得作者非常用心,相比之下我就比较水了,大家可以把我的代码作为一个参考,其他的看看上面那两篇文章就可以了 概述 堆排序,听名字好像和java中的堆空间有点关系,但其实这两个兄弟 阅读全文
摘要:
本文参考:图解排序算法(四)之归并排序,大家看这篇文章就够了,不用看我的文章,我的文章没他写的好 概述 前几篇文章,写了快速排序,希尔排序,这两种排序算法都是使用某种方法把数组分成几个部分,然后在每个小的部分进行排序,之后再对整体进行排序,不过快速排序和希尔排序的分段都不彻底,那什么是彻底的呢?就是 阅读全文
摘要:
本文参考:图解排序算法(二)之希尔排序,大家看这篇文章就够了,不用看我的,我的文章为了给自己做个笔记,方便自己以后看 概述 希尔排序,听名字很奇怪,就是以这个算法的发明人的名字命名的,这个排序算法是对插入排序的一个优化版本,本来以为优化的很好,仔细研究了一下,很失望,优化的并不怎么样,最差的情况时间 阅读全文