自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 资源 (1)
  • 论坛 (1)
  • 收藏
  • 关注

原创 Algorithm:十大经典排序算法C++实现及总结
原力计划

#include <iostream>#include <vector>#include <algorithm>using namespace std;//1、Bubble Sort 冒泡排序void bubbleSort(int a[], int length){ if (length < 2) return; for (int i = 0; i < length - 1; i++) //需length-1趟排.

2020-05-10 13:48:57 1020 2

原创 Leetcode每日一题:101.symmetric-tree(对称二叉树)

思路:这道题的递归思路比上一道题(100-相同的数)难想到一些;简单地说把它分解成子问题就是,结点A的左孩子要与结点B的右孩子对称,结点A的右孩子要与结点B的左孩子对称;class Solution {public: bool isSymmetric(TreeNode* root) { if(root==NULL) { return true; } return ismirror(root->lef.

2020-05-31 00:31:07 60

原创 Leetcode每日一题:100.same-tree(相同的树)

思路:这题首先想到了递归,如果当前p,q的值相等,那么只需比较它们的左子树和右子树,把问题分解成子问题,这样循环比较下去,当两者都是NULL的时候,返回true即可;这里要注意边界条件:第1,比较的两个结点仅有一个为NULL时,说明不相同,返回false;第2,如果两个结点都是NULL,返回true;第3,如果两个结点的值不相等,返回false;没调试,直接提交AC,也算是对自己的一点点肯定和自信吧!????????????struct TreeNode{ int val; TreeNo

2020-05-29 19:57:22 67

原创 Algorithm:贪心策略之区间覆盖问题

Describe:给定一个大区间1-T,以及n个小区间,要求用最少个数的小区间来覆盖大区间;Input:第一行,输入n和T;随后n行输入对应区间的起始终止坐标Output:输出覆盖区间1-T所需的最少区间个数Example:Input:3 101 73 66 12Output:2Thinking:首先应排除一些不可能用到的区间,比如右端点小于1和左端点大于T的区间;然后为满足贪心的思想,对于选择的第一个区间,必须使该区间的左端点<=1,右端点尽可能大;之后把此右端点

2020-05-26 15:21:26 136

原创 Algorithm:贪心策略之区间选点问题

Describe:在数轴上标点,使得该点能够被区间覆盖,并要求对应区间最少覆盖Ki个点,求最少标多少个点保证满足要求,同一个位置不能重复;Input:第一行输入区间个数 n后面n行输入对应区间的起始坐标,终点坐标以及需覆盖点的个数Output:最少所需点的个数Example:Input:53 7 38 10 36 8 11 3 110 11 1Output:6Thinking:首先依旧对所有区间按终点坐标进行排序,然后在终点坐标处进行打点,因为在这个位置打点能够被尽可能

2020-05-26 14:02:17 145

原创 Leetcode每日一题:88.merge-sorted-array(合并两个有序数组)

思路:最容易想到的就是归并排序的归并策略了,时间复杂度O(m+n),空间复杂度O(n);但是官网给出了另一个难以想到的妙招,就是反向归并,因为nums1最后面的n个元素是空的,所以从后端开始归并,每次选择较大的放入nums1的最后面;奇怪的是,明明空间复杂度差了O(m),但为什么跑出来结果差不多呢?void merge(vector<int> &nums1, int m, vector<int> &nums2, int n) { vec.

2020-05-24 21:05:35 121

原创 Leetcode每日一题:83.remove-duplicates-from-sorted-list(删除排序链表中的重复元素)

思路:两个指针pre和cur,用cur遍历链表,pre指向cur前面的非重复元素;class Solution {public: ListNode *deleteDuplicates(ListNode *head) { ListNode *pre=head; ListNode *cur=head; while(cur) { while(cur && cur->val==pre.

2020-05-24 09:51:50 113

原创 读书笔记——计算机网络CN
原力计划

目录第一章概述1.1 两个基本特点1.2 谁能够让你连接到网络?1.3 互联网标准是什么?1.4 互联网边缘的两个主机如何通信?1.5 两台主机是如何交换数据的?1.6 计算机网络的分类1.7 相关性能指标1.8 计算机网络体系结构1.8.1 分层的好处:1.8.2 五层体系结构1.8.3 协议与服务的区别第二章 物理层2.1物理层任务2.2数据通信系统模型2.3奈氏准则2.4香农公式2.5传输媒体2.5信道复用技术第三章 数据链路层3.1 点对点信道3.1.1 封装成帧3.1.2 透明传输3.1.3 差错

2020-05-24 09:10:42 113

原创 Leetcode每日一题:70.climbing-stairs(爬楼梯)

思路:f(n)为走到第n个台阶的方法数,那么f(n)=f(n-1)+f(n-2);即走到第n-1个台阶然后走一步到达终点或者走到第n-2个台阶然后走两部到达终点;int climbStairs(int n) { if (n == 1) return 1; if (n == 2) return 2; // return climbStairs(n - 1) + climbStairs(n - 2); .

2020-05-22 17:07:39 88

原创 Leetcode每日一题:67.add-binary(二进制求和)

思路:利用二进制规则,选长度最长的为标准,从两个字符串尾部开始相加,对应位求和sum,之后置该位为sum%2,进位为sum/2;string addBinary(string a, string b) { int sizeA = a.size(), sizeB = b.size(); if (sizeA < sizeB) //以较长字符串为返回标准 return deal(b, a); else .

2020-05-21 15:03:49 56

原创 Algorithm:位运算的这些小技巧你知道吗?
原力计划

目录位运算的巧妙之处应用二进制中1的个数异或运算的巧妙之处性质应用交换两个变量的值不用判断语句,求整数绝对值如何找唯一成对的数?位运算的巧妙之处算法中,位运算可以巧妙运用在一下几个方面:1、判断奇偶数 => x&12、判断数x中第k ( 从右至左 ) 位是1还是0​ 法1:( x >> ( k - 1 ) ) & 1​ ​ 法2:x & ( 1 << ( k - 1 ) )3、交换两个整数变量 a , b 的值a = a ^ b;

2020-05-21 09:37:58 133

原创 Leetcode每日一题:66.plus-one(加一)

思路:先把最后一位数字加1,如果大于10,就置零,然后往前加1;vector<int> plusOne(vector<int> &digits) { int len = digits.size(); int now = len - 1; while (now >= 0 && (++digits[now]) / 10) { digits[now] = 0;.

2020-05-18 08:48:24 172

原创 Leetcode每日一题:9.palindrome-number(回文数)

思路:正常取该数的每一位(从低位到高位),用一个long类型的变量res依次将这些位连接成整数;如果这个res与之前的数相等即为回文数;这里要注意负数,负数取余得到的也是负数;bool isPalindrome(int x){ if (x == 0) return true; long res = 0; int xx = x; while (xx) { res = res * 10 + xx % 10; xx /= 10; } if (x > 0 &&.

2020-05-18 08:22:19 74

原创 Leetcode每日一题:58.length-of-last-word(最后一个单词的长度)

思路:从最后一个字符开始遍历,先用一个while跳过最后面所有的空格,再遍历非空格字符并计数,遇空格则停止;int lengthOfLastWord(string s){ int len = s.length(); if (len == 0) return 0; int count = 0; int i = len - 1; while (i >= 0 && s[i] == ' ')//skip all last space; { --i; } whi.

2020-05-17 08:24:56 62

原创 Leetcode每日一题:35.search-insert-position(搜索插入位置)

思路:有序查找首先想到二分;这里的话,再加一个判断:如果最后得到的下标对应的值小于target的话,说明target应该插入到这个下标的右边;否则,应该插入到该下标位置;class Solution {public: int searchInsert(vector<int> &nums, int target) { //binary_Search int left = 0, right = nums.size() - 1; .

2020-05-17 08:10:53 51

原创 Leetcode每日一题:27.remove-element(移除元素)

刚刚考研复试完,并不怎么理想,自己认为学的很好的知识,其实并没有那么好,更何况要求你口头表述出来;终归到底是该练习的没练习,该学精的没学精;从今天开始,攻克leetcode简单题->中等题->困难题,这是个阶梯性的过程,不要急于求成,塌下心来安心学习即可,日积月累之后终有收获;本题思路:把与val相同的元素丢弃 <=> 把与val不同的元素留下来;这道题还是比较容易的,代码相信都能看懂;int removeElement(vector<int> &num.

2020-05-16 15:50:05 127

原创 面试题——C++/C
原力计划

目录1. C++和C的区别2、static的作用3、C++中的四种cast转换4、C++/C中指针和引用的区别5、什么是野指针6、为什么对于会被继承的类,其析构函数必须是虚函数?7、函数指针8、C++中析构函数的作用9、静态函数和虚函数的区别10、重载和覆盖11、对虚函数和多态的理解12、写个函数在main函数执行前先运行13、const char *arr="123"; char *brr="123";char crr[]="123";的区别14、C语言是怎么进行函数调用的?15、说一声fork,wai

2020-05-13 13:06:55 365

转载 操作系统——Linux 虚拟内存和物理内存的理解

声明转载自:Linux 虚拟内存和物理内存的理解虚拟内存:第一层理解1.、每个进程都有自己独立的4G内存空间,各个进程的内存空间具有类似的结构;2、一个新进程建立的时候,将会建立起自己的内存空间,此进程的数据,代码等从磁盘拷贝到自己的进程空间,哪些数据在哪里,都由进程控制表中的task_struct记录,task_struct中记录中一条链表,记录中内存空间的分配情况,哪些地址有数据,哪些地址无数据,哪些可读,哪些可写,都可以通过这个链表记录;3、每个进程已经分配的内存空间,都与对应的磁盘空间映

2020-05-12 14:54:45 213

转载 数据结构:B树和B+树的插入、删除图文详解

目录B树1.1B树的定义1.2B树的插入操作1.3B树的删除操作B+树2.1 B+树的定义2.2 B+树的插入操作2.3 B+树的删除操作B树1.1B树的定义B树也称B-树,它是一颗多路平衡查找树。我们描述一颗B树时需要指定它的阶数,阶数表示了一个结点最多有多少个孩子结点,一般用字母m表示阶数。当m取2时,就是我们常见的二叉搜索树。一颗m阶的B树定义如下:1)每个结点最多有m-1个关键字。2)根结点最少可以只有1个关键字。3)非根结点至少有Math.ceil(m/2)-1个关键字。4)每个结

2020-05-12 09:55:20 389

原创 使用VScode + PicGo 写markdown 以及github图片加载不出的问题
原力计划

PicGo在vscode中相当于把你剪贴板图片上传到云端,然后提供给你一个访问它的链接;图床即实现这样一个功能,为什么要这样呢?如果直接复制图片,则是生成一个含本地文件路径名的链接,这只在当前可以看到此图片,如果将文本复制到别的地方就指挥显示此路径链接,而不可能出现图像,所以需要一个图床一样的工具,将图片放入云端,然后给你链接才访问此图像,这就避免了上述问题;简单来说,图床就是自动把本地图片转换成链接的一款工具,即PicGo的功能;如何用vscode配置picgo来实现markdown文档的编辑:

2020-05-12 00:45:00 1189 2

原创 面试题简答题——操作系统相关汇总
原力计划

目录1. TLB 、Cache 与 buffer1. TLB 、Cache 与 buffer

2020-05-10 21:57:10 521

原创 读书笔记——心理学之影响力
原力计划

目录1. 作者介绍2. 影响力的武器——武装自己3. 互惠——给予、索取、再索取4.承诺和一致——脑子里的怪物5.社会认同——脑子里的怪物6.喜好——友好的窃贼7.权威——教化下的敬重8.稀缺——数量少的说了算9. 尾声——即时的影响力1. 作者介绍本书《影响力》作者:罗伯特·西奥迪尼(Robert B.Cialdirli),"影响力教父”,著名社会心理学家;点评鉴赏:1、西奥迪尼在影响力...

2020-05-09 22:14:45 543

原创 读书笔记——计算机组成原理
原力计划

目录第一章 计算机系统概述1.1 计算机硬件的发展1.2 计算机的分类和发展方向1.3计算机系统层次结构1.3.1冯诺依曼体系结构1.3.2 计算机的功能部件1.3.3 三个级别的语言1.3.4 计算机的工作过程1.4 计算机的性能指标第二章 数据的表示和运算2.1 数制与编码2.2 定点数的计算2.3 浮点数的表示和计算2.4 算术逻辑单元ALU第三章 存储系统3.1 存储器概述3.2 存储器层次化结构3.3 半导体随机存储器3.4 主存储器与CPU的连接3.5双端口RAM和多模块存储器3.6 高速缓冲存

2020-05-09 16:22:06 436

原创 面试题简答题——数据库相关汇总
原力计划

问题目录1. 存储过程与函数的区别2. primary key约束 与 unique 约束的区别3. 简述查询优化的步骤4. 数据库中常用的四种文件组织形式5. 为什么要对关系代数表达式进行优化6.文件系统为什么会存在数据冗余?数据冗余会导致哪两类问题?1. 存储过程与函数的区别视图是虚表,不存储数据,存储的是SQL语句,检索视图实际上是执行定义它的SQL语句,视图的定义,存放在数据字典中;视图的性能并没有想象中的出色,对视图请求无非就是执行了一句普通的select语句,然后以结果集构成视图;存储过程

2020-05-08 21:34:40 240

原创 读书笔记——数据库系统概论
原力计划

目录第一章 绪论1.1 数据库系统概述1.2 数据模型1.3 数据库系统的结构1.4 数据库系统的组成第二章 关系数据库第三章 关系数据库标准语言SQL第四章 数据库安全性第五章 数据库完整性第六章 关系数据理论第七章 数据库设计第八章 数据库编程第九章 关系查询处理和查询优化第十章 数据库恢复技术第十一章 并发控制第一章 绪论1.1 数据库系统概述一、四个基本概念数据:描述事物的符号记...

2020-05-07 13:54:22 403

原创 Leetcode每日一题:54.spiral-matrix(螺旋矩阵)

思路:比较普通,就是四个for循环一次一层层遍历;vector<int> spiralOrder(vector<vector<int>> &matrix){ vector<int> res; if (matrix.size() == 0) { return res; } int...

2020-05-06 09:51:06 45

原创 Leetcode每日一题:50.powx-n

思路:递归折半相乘耗时 0-4ms之间吧double fun(double x, int n){ if (n == 0) return 1; double mid = fun(x, n / 2); //注意不要写成 int mid;这样可能会导致强制转换从而使 mid 变成 0; if (n & 1)//如果n是奇数 n/2之后必定会少乘一...

2020-05-05 10:46:34 80

原创 读书笔记——计算机基础之操作系统
原力计划

目录第一章 计算机系统概述1.1 操作系统的基本概念1.1.1 操作系统的概念1.1.2 操作系统的特征1.1.3 操作系统的目标和功能1.2 操作系统的发展与分类1.3 操作系统的运行环境1.3.1 操作系统的运行机制1.3.2 中断和异常1.3.3 系统调用1.4 操作系统的体系结构1.5 Notice第二章 进程管理2.1 进程与线程2.1.1 进程的概念及特征2.2.2 进程的状态及转换2...

2020-05-05 10:13:41 584

原创 Leetcode每日一题:44.wildcard-matching(通配符匹配)

方法一:动态规划m,n分别为s,p字符串长度,dp[i][j]代表s前i个字符与p前j个字符是否匹配;dp[0][0] = true;两个字符串长度都为0,肯定是匹配的;dp[0][1] 到 dp[0][k] 为true :代表字符串前面有连续的k个’ * ‘,这些都是匹配的,因为 ’ * ‘可以代替空字符串,比如"" 和"***";若s[i-1]==p[j-1] 或者 p[j-1]’?’...

2020-05-04 10:57:55 60

原创 Leetcode每日一题:53.maximum-subarray(最大子序和)

虽然是简单题,但思路还是挺巧妙地:非递归实现假设当前进行到 nums[cur],若前面地和为sum ,执行sum=sum+nums[cur] 小于0,将sum与sunMax比较,然后将sum置0,为什么要置0?因为前面的已经是负数了,-1 + a(a为任何数)肯定是小于a的,所以我们直接从下一个数(cur+1)开始;如果sum>0,直接与sumMax比较即可;时间复杂度O(n),...

2020-05-03 10:16:16 60

原创 Algorithm:贪心策略之区间调度问题

Describe:有n项工作,每项工作分别再si时间开始,在ti时间结束;对于每项工作,你都可以参与与否,如果选择参与,那么自始自终都必须全程参与;此外参加工作的时间段不能重复(即使是开始的瞬间和结束的瞬间的重叠也不允许);你的目标是参与尽可能多的工作,那么最多能参与多少项工作呢?1<=n<=1000001<=si<=ti<=10^9输入:第一行:n第二...

2020-05-03 08:57:10 108

原创 Leetcode每日一题:49.group-anagrams(字母异位词分组)

这道题我认为题目没有写清楚,测试用例中两个完全相同的字符串也归为一组,然而从题意中我们会认为这两个字符串只需放入一个即可解题思路: 方法1:利用hash + map 先用hash判断字符串是否相同 以及相同时该插入vector的位置 方法2:利用sort + map 先用sort排序字符串 然后在map中找到该插入vector的位//方法一 hash+mapclass Soluti...

2020-05-02 11:32:22 49

原创 计算机相关概念

基本概念:SDK:(software develop kit 软件开发工具包)一般都是一些软件工程师为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合,包括广义上指辅助开发某一类软件的相关文档、范例和工具的集合等Json:(JavaScript Object Notation JS 对象简谱)是一种基于JavaScript语法子集的开放标准数据交换格式。JSON...

2020-05-02 00:54:40 150

原创 Leetcode每日一题:42.trapping-rain-water(接雨水)

本人菜鸡,参照评论大佬得解;第一个容易理解,第二个动态规划int trap(vector<int> &height){ int len = height.size(); if (len == 0) return 0; int maxIndex = 0; //最高点 int res = 0; //找出最高点索引...

2020-05-01 15:39:24 73

CMU CSAPP课件

CMU CSAPP课件

2020-09-26

devC++出现error: ld returned 1 exit status错误

发表于 2019-11-11 最后回复 2019-11-13

空空如也

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

TA关注的人 TA的粉丝

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