自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 GDB使用总结

1.tui enable会展示一个窗口可以使用layout asm在窗口中显示汇编指令使用layout split显示c代码和汇编使用layout source显示c代码使用layout reg显示寄存器的值使用focus reg定位到指定窗口2.在gdb窗口中使用enter会执行上一次执行的命令3. info breakpoints 显示所有已经设置的断点 info/ireg/registers显示寄存器的值4. delete命令会删除所有的断点5. aprop..

2021-08-10 14:50:01 95

原创 计算机基础知识总结

1.大小端在多字节数据类型中,这些字节在内存的顺序有两种不同的排列方法,这是由机器本身决定的。大端机器中,内存的低位保存当前这个多字节数据类型的最高字节,小端机器中,内存的低位保存当前这个多字节数据类型的最低字节。对于C字符串类型,由于是从内存低位一个字符一个字符访问,所以相当于内存的低位保存当前字符串的第一个字节。参考资料:简单解释详细解释...

2021-08-10 14:32:28 100

原创 makefile相关知识汇总

1. makefile对于.o等target会有一套对应的隐含规则,并不需要我们去自己定义相应的规则,可以通过make -p命令查找对应的规则。可参考如下链接:makefile中的隐含规则

2021-06-26 10:37:28 162

原创 ubuntu18.04下gcc7.5.0安装zsim

1. 下载zsim支持ubuntu18.04版本《《戳这里》》2. 下载PIN2.14《《戳这里》》,直接解压即可,并定义环境变量PINPATH为PIN2.14根目录3. 下载安装libconfig1.7.3《《戳这里》》./configure --prefix=<libconfig install path>// 注意:Makefile中CFLAGS 和 CXXFLAGS 添加 -fabi-version=2 -D_GLIBCXX_USE_CXX11_ABI=0ma...

2021-06-24 18:55:51 1001

原创 C语言个人总结

c语言可以进行数组越界访问,从而访问或修改到非法内存区域,而且并不会对此非法访问做出检查。

2021-06-06 19:10:45 153

原创 2021-05-28

安装sst需要注意的地方1.安装时gcc版本要符合要求,如果现有机器没有指定版本的gcc,则需要自己手动编译,但是手动编译过程中使用到的gccbian'q'y

2021-05-28 15:23:41 42

原创 数组-最佳观光组合(力扣1014)

题目链接 点我思路思路一看到这种题,我们首先想到的就是暴力解法,双层循环遍历,求出对应的值,与最大值进行比较即可。过程如下:数据声明(1)最大分数,用于比较和返回结果(2)数组的长度,用于循环条件双层循环,第一层循环从0开始,到len-1结束,第二层循环从1开始到len结束每次循环计算出目标值与最大值进行比较更新代码class Solution {public: int maxScoreSightseeingPair(vector<int>&

2020-06-17 10:59:06 175

原创 数组-递减元素使数组呈锯齿状(力扣1144)

题目链接 点我思路题目要看清每次操作只会将元素的值减少1没有增加1的操作,只有对元素进行减少1的操作思路一自己一开始没有看清题目,误以为也可以递增1,所以想复杂了,虽然最后做出来了,但是与标准答案不沾边,这里记录一下。锯齿数组的特点就是一增一减,怎么样才能更加直观的体现这种一增一减的大小变化呢,我想到了差分,相邻两个元素作减法的值不就更能直观的体现元素间的大小关系,所以通过给出的原数组可以得到一个体现相邻元素大小关系的正负数组,如果正负数组中,有连续的正值或者负值,则原数组不是锯齿数组。对

2020-06-16 20:33:34 726

原创 数组-大小为 K 且平均值大于等于阈值的子数组数目(力扣 1343)

题目链接 点我思路基本概念要掌握子数组:一个或多个连续原数组中元素组成子数组子序列:在原序列中抽取一个或多个元素组成子序列即子数组必须连续,子序列不一定连续作者本人在第一次做题时没有思路就是没有搞清楚这两个概念。思路一在了解了子数组的概念后,不知道你有没有了思路?是否感觉题目瞬间简单了。不就是在数组中找出所有的连续的k个元素的子数组,对于每个子数组求和,再除k与threshold比较。那么有以下几个问题:如何找出一个数组所有的连续的k个元素的子数组?以我们正常人的思维首先想到的就是

2020-06-14 19:49:44 491

原创 树-二叉树的最小深度(leetcode 111)

二叉树的最小深度思路:遍历二叉树,找到二叉树的叶子节点,而不是空节点,返回深度1,对于二叉树的其它节点递归其子节点并加1.答案:class Solution {public: int minDepth(TreeNode* root) { if(!root) return 0; int left=minDepth(root->left),right=minDepth(root->right); return

2020-06-07 22:56:27 123

原创 树-二叉搜索树的最近公共祖先(leetcode 235)

二叉搜索树的最近公共祖先思路:二叉搜索树,对于二叉搜索树中的每一个节点,其左子节点的值小于当前节点的值,右子节点的值大于当前节点的值。递归寻找相应节点。如果两个节点不分布在以一个节点为根的同一侧,则此节点为祖先。那么我们可以在两个节点在同一侧时,根据二叉搜索树的特性进行缩小树的范围。答案:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left;

2020-06-07 22:24:44 110

原创 树-左叶子之和(leetcode 404)

左叶子之和 链接思路:考察二叉树的遍历,遍历每一个节点,判断其是否为左叶子节点,将其值返回。答案:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class

2020-06-07 22:07:15 101

原创 树-N叉树的后序遍历(leetcode 590)

N叉树的后序遍历 链接题目描述:思路:考查树的遍历,遇到的问题:1、c++中如何合并两个vector,可以使用vector的insert方法,如合并两个vector,x1与x2,到x1中,可以x1.insert(x1.begin(), x2.begin(), x2.end())2、c++中for循环遍历数组nums可以使用:for(type x : nums)其中x即为nums中的元素答案:/*// Definition for a Node.class Node {publi

2020-06-06 10:28:09 109

原创 数组-最长连续序列(leetcode 128)

最长连续序列题目描述:思路:一般碰到这种问题,我们首先想到的就是暴力解法:遍历数组中的每一个元素,以此元素作为最长连续数列的第一个元素,然后对此元素不断加1,判断加1后的这些元素是否在数组中,从而得出“当以数组中每一个元素作为最长连续数列中第一个元素时的序列长度”取其中最大值即可。但是这样显然不满足题目的时间复杂度要求,所以需要优化,我们可以使用hash来判断一个元素是否存在于数组中,从而不需要遍历数组去查找,使用hash查找元素复杂度变为O(1),另外当一个元素x的前一个数x-1如果在数组中,

2020-06-06 09:57:15 430

原创 树-检查二叉树的平衡性(leetcode)

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

2020-06-05 20:32:16 188

原创 树-二叉树中的列表(力扣1367)、检查子树

此类题目考察对树的遍历(递归遍历)通过对二叉树进行深度优先遍历,遍历到一个节点,把此节点当作根节点来调用判断函数,判断以此节点为根节点,是否能匹配对应的链表。归根结底,计算机大多数时间是通过暴力枚举的方法来解决问题的。有两道比较类似的题目如下:leetcode 1367 二叉树中的列表链接题目描述:给你一棵以 root 为根的二叉树和一个 head 为第一个节点的链表。如果在二叉树中,存在一条一直向下的路径,且每个点的数值恰好一一对应以 head 为首的链表中每个节点的值,那么请你返回 Tru

2020-06-05 20:00:07 153

原创 最长递增子序列

#include <stdio.h>int a[100];int b[100];int n=0;void solve(){ for(int i=0;i<n;i++) { int maxi=1; for(int j=0;j<i;j++) { int t; ...

2019-07-08 21:57:57 72

翻译 ubuntu下swap分区 boot分区 概念理解

以下是个人在网络搜集到的较为容易理解的解释,若有不对或缺少之处,欢迎评论区纠正及补充,共同学习进步。谢谢!swap是linux下的虚拟内存分区,作用是在物理内存使用完成之后,将磁盘空间(也即swap分区)虚拟成内存来使用。swap和windows系统的交换文件作用类似,但是它是一段连续的磁盘空间,并且对用户不可见。swap分区能够作为“虚拟”的内存,但其速度比物理内存慢,因此若需...

2019-07-01 20:04:42 2518

转载 质因数的个数

链接:https://www.nowcoder.com/questionTerminal/20426b85f7fc4ba8b0844cc04807fbd9来源:牛客网#include <iostream>#include <cmath>using namespace std;int main(){ //这题的关键: //1、是sqrt,...

2019-06-28 11:34:28 116

原创 自然归并排序

#include&lt;iostream&gt;using namespace std;int Search(int *a, int *b, int n);void Merge(int *a, int left, int mid, int right);void MergeSort(int *a, int *b, int num,int n);void MergePass(int ...

2019-01-06 12:06:46 350 2

原创 归并排序无递归

#include &lt;iostream&gt;using namespace std;void MergeSort(int *a,int n);void MergePass(int *a, int s,int n);void Merge(int *a, int left, int mid, int right);void output(int *a, int n);int ...

2019-01-05 22:46:00 137

原创 归并排序

#include &lt;iostream&gt;using namespace std;void MergeSort(int *a, int left, int right);void Merge(int *a, int left, int mid, int right);void output(int n, int *a);int main(){ int n; ...

2019-01-03 17:17:38 62

原创 走迷宫简单版

#include &lt;iostream&gt;int m, n, s=0;int startx, starty;int endx, endy;int a[20][20];void input();void DFSmaze(int x, int y);void output();int main(){ input(); DFSmaze(startx, s...

2019-01-01 17:44:43 438

原创 C语言求第k小数快速排序思想

#include &lt;iostream&gt;void input();void QuickSelect(int *b, int left, int right, int target);void swap(int i, int j);void output();int n;int k;int *a;int main(){ input(); Quick...

2019-01-01 16:41:27 821

原创 穷举所有排列

#include &lt;iostream&gt;char a[9] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i'};int n;void output();void swap(int m, int n);void search(int m);int main(){ std::cin &gt;&gt; n; s...

2019-01-01 13:25:36 856

原创 c语言穷举n位二进制回溯法

#include &lt;iostream&gt;int n, a[20];void output();void search(int m);int main(){ std::cin &gt;&gt; n; search(0); return 0;}void search(int m){ if (m == n) { ...

2019-01-01 13:24:53 314

原创 快速排序

#include &lt;iostream&gt;void Quicksort(int *a, int left, int right);void swap(int *a, int m, int n);int main(){ int n; std::cin &gt;&gt; n; int *a = (int *)malloc(n * sizeof(int))...

2018-12-31 22:51:27 50

原创 快速排序

#include <stdio.h>void quick(int* a,int left,int right){ if(left >= right) return ; int tmp=a[left]; int i=left; int j=right; while(i<j) { while...

2018-12-31 22:17:45 103

原创 C语言归并排序

描述给定一个数列,用归并排序算法把它排成升序。输入第一行是一个整数n(n不大于10000),表示要排序的数的个数;下面一行是用空格隔开的n个整数。输出输出排序后的数列,每个数字占一行。归并排序有两个关键点1.将两个已经排好序的序列进行合并。/* *归并2个有序序列为1个有序序列 * */void merge(int *a, int start, int ...

2018-12-31 17:02:29 242

原创 c语言简单实现二分查找

题目:给定一个单调递增的整数序列,问某个整数是否在序列中。输入:第一行为一个整数n,表示序列中整数的个数;第二行为n(n不超过10000)个整数;第三行为一个整数m(m不超过50000),表示查询的个数;接下来m行每行一个整数k。输出:每个查询的输出占一行,如果k在序列中,输出Yes,否则输出No。--------------------------------------...

2018-11-06 17:30:32 286

空空如也

空空如也

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

TA关注的人

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