自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 资源 (1)
  • 收藏
  • 关注

原创 二叉树的遍历 & C++代码实现

二叉树的遍历先序遍历:到达一个节点后,即刻输出该节点的值,并继续遍历其左右子树。中序遍历:到达一个节点后,将其暂存,遍历完左子树后,再输出该节点的值,然后遍历右子树。后序遍历:到达一个节点后,将其暂存,遍历完左右子树后,再输出该节点的值。层次遍历二叉树的节点类struct BinaryTreeNode { int val; BinaryTreeNode* leftchild; BinaryTreeNode* rightchild; BinaryTreeNode

2020-08-31 18:52:15 263

原创 欢迎关注 https://swhaledcc.github.io

博客内容在 http://www.dccun.xyz/ 同步更新欢迎关注!

2020-06-11 10:16:37 13790

原创 滚球经验总结(PID)

1、正点原子STM32F407探索者 + openmv3——串口通信最近在用stm32f407探索者做滚球,一开始使用的摄像头是openmv3(openmv4太贵)——实时检测小球坐标(x,y),然后把x和y发送到407开发板的LCD显示。openmv的好处是可以使用otsu(大津算法)自动检测阈值,而ov摄像头只能手动调阈值才能找出最佳二值化效果。# 自动检测阈值img =...

2019-08-13 14:08:48 18075 9

原创 2019本科物联网保研

基本情况偏远地区末末末末末末流211,大二园艺转物联网,裸绩点排名1/117,综合排名2/116,四级548,六级459,蓝桥杯数学建模省奖,能力一般般。五月份之前写好了简历和个人陈述(这些最好提前准备不然后面时间很紧),打印了成绩单和排名证明并拿去盖章,现在回忆一下好像整个五月份都在报各个学校的夏令营,六月份等各个学校的入营名单。准备1.算法,很重要很重要很重要...

2019-07-26 19:13:00 974 7

原创 2019北航计科保研夏令营(非优营)

北航夏令营过了机考,面试被刷了,感觉特别特别遗憾,但是还是想写一下北航夏令营的经历。北航夏令营的流程跟北理很类似,第一天上午宣讲会,下午机考。宣讲会7.11号上午:跟北理一样,每个研究所的代表老师上台PPT讲解研究所的师资和科研方向,同样可以加微信群,十二点宣讲会结束。机考7.11号下午:机考分为两批,我在第一批,13.00-15.00,两道题,第一道题是环选择排序...

2019-07-24 14:07:18 3414 12

原创 2019北理计科保研夏令营(优营)

准备北理看机考!!!2018年机考超级简单,师兄说19年难度会加大,必须好好准备。2018年北京理工大学计算机学院保研夏令营机试18年机考超级简单,是人工测试,也就是给你三组数据输入后看结果对不对,测试的数据也不会太大太偏的,测试后不能再改代码。1、输入一串随机的数,用逗号隔开。如果有重复就输出最靠后的一个,没有重复的就输出-1。输入:1,2,3,4,4,3,2,1 ...

2019-07-03 18:52:43 4102 1

原创 2019南开软院保研夏令营(优营)

2019南开软院的夏令营是6.24-6.27,算是开始时间最早的了,实际参加的是30个同学。

2019-07-02 17:58:13 2164 2

原创 Python | numpy的where()函数

np.where(conditions, x, y)np.where(conditions, x, y)if(conditions为true):  数组对应元素变成xelse:  数组对应元素变成y使用场景:有一个二维数组example,小于0.5的元素变成0,否则不变:example = np.where(example >= 0.5, example, 0)eg:原始数组:1.0 0.5 0.3 0.80.2 0.9 0.4 0.7转化后数组:1.0 0.5 0.0

2020-11-11 10:34:08 3741

原创 启动Vue项目执行npm run serve报错npm ERR! XXX@0.1.0 serve: `vue-cli-service serve --open`

问题想启动一个Vue项目,在终端输入npm run serve后报错:解决方法参考 https://blog.csdn.net/CC1991_/article/details/108152325 ,发现很容易解决,只需要先把项目里面的node_modules文件夹直接删掉,再执行命令npm install,安装完毕之后,再次在终端里面输入命令行:npm run serve 回车,就不再报错。总结:启动Vue项目执行npm run serve报错首先删掉node_modules文件夹然后执行

2020-11-01 21:27:50 33930 8

原创 win10安装VS2019使用OpenGL

win10安装vs2019:知乎教程在vs2019中配置OpenGL:B站视频教程

2020-10-30 11:26:30 4360

原创 ubuntu18.04开机循环输入密码无法进入桌面

问题:在profile和environment文件里配置了java环境变量后,重启电脑后即使输入正确的用户名和密码,也会重新跳到登录界面,无法进入系统,一直循环登录。原因:参考:https://blog.csdn.net/ameyume/article/details/6378212ubuntu 启动的时候读取配置文件,并设置环境变量的顺序是这样的:在登录时,操作系统定制用户环境时使用的第一个文件就是 /etc/profile,此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执

2020-10-22 08:48:24 11749 4

原创 screen命令

参考:http://lnmp.ailinux.net/screenscreenScreen是一款由GNU计划开发的用于命令行终端切换的自由软件。用户可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换。GNU Screen可以看作是窗口管理器的命令行界面版本,它提供了统一的管理多个会话的界面和相应的功能。只要Screen本身没有终止,在其内部运行的会话都可以恢复。这一点对于远程登录的用户特别有用——即使网络连接中断,用户也不会失去对已经打开的命令行会话的控制。只要再次登录到主机上执行.

2020-10-11 19:45:50 998

原创 soot 简介 | 安装运行

soot简介与安装运行:https://blog.csdn.net/myw_katrina/article/details/80243149在Soot中有个Main.java类,这个类主要是负责解析命令行的,在这里面可以找到命令与程序类的方法之间的对应关系(尤其注意Main中的run()方法)。soot:https://blog.csdn.net/norlannet/article/details/41040949-cp:https://blog.csdn.net/w425006762/arti

2020-10-10 22:48:54 1520

原创 anaconda创建虚拟环境

参考:https://www.cnblogs.com/mini-test/p/11937211.html我的环境:win10,python3.8(anaconda),因为GitHub上clone的一些源码需要在python2中运行,所以需要创建一个python2的虚拟环境。主要命令:conda env list: 显示目前你的虚拟环境列表conda create -n drebin python=2.7 创建一个名为drebin的python2.7虚拟环境conda activa.

2020-10-08 20:51:43 133 2

原创 apktool反编译出现Press any key to continue...

apktool官网安装教程:https://ibotpeaches.github.io/Apktool/install/我的安装环境是Win10,写了一个for循环来批量反编译apk文件。但是发现每反编译完一个apk文件后,都会出现Press any key to continue…这样严重影响反编译的效率。看了下apktool.bat文件,是这样的而该文件的源码是这样的看样子只能改apktool.bat文件了,百度了一下,把这个bat文件改成了下面的样子@echo offif ".

2020-10-03 19:03:28 626 5

原创 红黑树R-B Tree

参考资料:一篇漫画告诉你–什么是红黑树?二叉查找树(BST)特性:左子树上所有结点的值均小于或等于它的根结点的值。右子树上所有结点的值均大于或等于它的根结点的值。左、右子树也分别为二叉排序树。红黑树特性:节点是红色或黑色。根节点是黑色。每个叶子节点都是黑色的空节点(NIL节点)。每个红色节点的两个子节点都是黑色。(从每个叶子到根的所有路径上不能有两个连续的红色节点)从任一节点到其每个叶子的所有路径都包含相同数目的黑色节点。...

2020-06-11 10:49:50 3758 1

原创 2018年力扣高频算法面试题9树

目录二叉搜索树中第K小的元素路径总和翻转二叉树二叉搜索树中第K小的元素给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k个最小的元素。假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元素个数。进阶:如果二叉搜索树经常被修改(插入/删除操作)并且你需要频繁地查找第 k 小的值,你将如何优化 kthSmallest 函数?解题思路:利用find记录是否找到结果,来提前终止遍历过程, https://leetcode-cn.com/problems/kth-smallest-e

2020-06-11 10:45:23 196

原创 2018年力扣高频算法面试题8排序与检索

目录1、寻找峰值2、寻找重复数3、计算右侧小于当前元素的个数4、摆动排序 II5、最大数1、寻找峰值峰值元素是指其值大于左右相邻值的元素。给定一个输入数组 nums,其中 nums[i] ≠ nums[i+1],找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回任何一个峰值所在位置即可。你可以假设 nums[-1] = nums[n] = -∞。要求:你的解法应该是O(logN)时间复杂度的。参考思路:方法一:线性扫描:时间复杂度O(n),空间复杂度O(1)。方法二:二分

2020-06-11 10:42:48 352

原创 2018年力扣高频算法面试题7哈希与映射

目录1、常数时间插入、删除和获取随机元素2、四数相加 II1、常数时间插入、删除和获取随机元素设计一个支持在平均时间复杂度 O(1)下,执行以下操作的数据结构。insert(val):当元素 val 不存在时,向集合中插入该项。remove(val):元素 val 存在时,从集合中移除该项。getRandom:随机返回现有集合中的一项。每个元素应该有相同的概率被返回。解题思路:hashmap用来key->index(vector的索引位置),vector用来存储key值。插入比较简单,使

2020-06-11 10:41:47 404

原创 2018年力扣高频算法面试题6链表

目录删除链表中的节点复制带随机指针的链表相交链表排序链表删除排序数组中的重复项之前在CSDN写过一篇 链表与快慢指针 的笔记(判断链表是否有环、找到环的入口、反转链表):删除链表中的节点请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。分析:之前有同学去哈深面试也问过类似的问题。没有给我们链表的起点,只给我们了一个要删的节点,跟我们以前遇到的情况不太一样,我们之前要删除一个节点的方法是要有其前一个节点的位置,然后将其前一个节点的next连向要删节点的下一个,

2020-06-11 10:40:44 208

原创 2018年力扣高频算法面试题5字符串

目录分割回文串分割回文串给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串。返回 s 所有可能的分割方案。示例:输入: “aab”输出:[[“aa”,“b”],[“a”,“a”,“b”]]分析:DFS—既然题目要求找到所有可能拆分成回文数的情况,那么肯定是所有的情况都要遍历到,对于每一个子字符串都要分别判断一次是不是回文数,那么肯定有一个判断回文数的子函数,还需要一个DFS函数用来递归,再加上原本的这个函数,总共需要三个函数来求解。我们将已经检测好的回文子串放到字符串

2020-06-11 10:38:43 410

原创 2018年力扣高频算法面试题4动态规划

目录除自身以外数组的乘积递增的三元子序列乘积最大子序列打乱数组矩阵中的最长递增路径零钱兑换最长连续序列最长上升子序列完全平方数鸡蛋掉落除自身以外数组的乘积给定长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。说明: 请不要使用除法,且在 O(n) 时间复杂度内完成此题。分析: 对于某一个数字,如果我们知道其前面所有数字的乘积,同时也知道后面所有的数乘积,那么二者相乘就是我们要

2020-06-11 10:34:22 461

原创 2018年力扣高频算法面试题3堆栈与队列

目录基本计算器1【需二刷】基本计算器2【需二刷】基本计算器3【需二刷】至少有K个重复字符的最长子串【需二刷】数据流的中位数滑动窗口最大值数组中的第K个最大元素有序矩阵中第K小的元素前 K 个高频元素Subarray Sum Equals K基本计算器1【需二刷】实现一个基本的计算器来计算一个简单的字符串表达式的值。字符串表达式可以包含左括号 ( ,右括号 ),加号 + ,减号 -,非负整数和空格 。分析:用一个栈来存放 ‘(’ 外计算得到的数值,一个栈用于存放 ‘(’ 外的运算符。如果遇到 ‘)

2020-06-11 10:20:26 519

原创 2018年力扣高频算法面试题2图论

目录课程表【需二刷】课程表II【需二刷】岛屿数量单词接龙【需二刷】Path Sum III课程表【需二刷】现在你总共有 n 门课需要选,记为 0 到 n-1。在选修某些课程之前需要一些先修课程。 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们: [0,1]给定课程总量以及它们的先决条件,判断是否可能完成所有课程的学习?//广搜class Solution {public: bool canFinish(int numCourses, vector<

2020-06-11 10:14:59 386

原创 2018年力扣高频算法面试题1数学&位运算

目录友链1、只出现一次的数字2、直线上最多的点数【需二刷】3、分数到小数【需二刷】4、阶乘后的零5、缺失数字6、3的幂7、颠倒二进制位【需二刷】Sum of Two Integers友链2018年力扣高频算法面试题汇总题解参考-github1题解参考-github21、只出现一次的数字给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。要求:线性时间复杂度、不使用额外空间解答:典型的位运算,相同的两个数异或为0,扩展形式为,找出给定

2020-06-11 10:12:33 291

原创 算法数据结构中有哪些奇技淫巧

最近刷知乎发现了一个很有意思的话题——算法数据结构中有哪些奇技淫巧,来总结一下,学到不少。(*^▽^*)1、找出只出现一次的数在一个数组中有一个数只出现了一次,其他数都出现了两次,找出这个只出现了一次的数。常规解法:用一个哈希表存储该数组,每次存储的时候,记录 某个数出现的次数,最后再遍历哈希表,看看哪个数只出现了一次。这种方法的时间复杂度为 O(n),空间复杂度也为 O(n)。...

2019-06-06 21:09:48 246

原创 最短路算法学习

POJ 最短路问题题号汇总参考:《算法图解》第7章 《算法导论》第24章迪杰斯特拉算法Dijkstra算法又称为单源最短路径,所谓单源是在一个有向图中,从一个顶点出发,求该顶点至所有可到达顶点的最短路径问题。它的主要特点是以起始点为中心向外层扩展(广度优先搜索思想),直到扩展到终点为止。迪杰斯特拉算法采用贪心策略。使用二维数组 ...

2019-05-22 21:10:46 427

原创 字典树Trie

字典树是一种树状信息检索数据结构,可以快速的进行字符插入、字符串搜索等,是一棵多叉树。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希树高。字典树设计的核心思想是空间换时间,所以数据结构本身比较消耗空间。但它利用了字符串的共同前缀(Co...

2019-05-15 22:57:19 120

原创 并查集Union-Find

关于并查集,看了好多博客,我理解的并查集是一种数据结构,主要用于解决动态连通性一类问题。用于处理一些不相加集合的合并和查询问题。在使用中常常以森林来表示。 并查集也是用来维护集合的,和前面学习的set不同之处在于,并查集能很方便地同时维护很多集合。如果用set来维护会非常的麻烦。并查集的核心思想是记录每个结点的父亲结点是哪个结点。参考博客:https://blog.csdn.net/dm_vi...

2019-05-12 10:13:18 201

原创 堆Heap、大根堆Min-heap、小跟堆Max-heap

LeetCode中用堆做的题:1、Top K Frequent ElementsGiven a non-empty array of integers, return thekmost frequent 题目要求:这道题给了我们一个数组,让我们统计前k个高频的数字。 题目分析:对于这类的统计数字的问题,首先应该考虑用HashMap来做,建立数字和其出现次数的映射,然后再按照出现次...

2019-05-11 21:30:48 647

原创 栈stack、单调栈Monotone Stack

先写两个用栈做的LeetCode算法题:1、Valid Parentheses有效的括号Given a string containing just the characters'(',')','{','}','['and']', determine if the input string is valid.An input string is valid if:O...

2019-05-08 21:14:19 649

原创 23-最小生成树

参考:《算法导论》第23章最小生成树:在一个连通无向图中找到一个无环子集,既能将所有结点连接起来,又具有最小的权重。最小生成树有3个性质:最小生成树是树,因此其边数等于定点数减1,且树内一定不会有环; 对给定的图G(V,E),其最小生成树可以不唯一,但是其边权之和一定是唯一的; 由于最小生成树是无向图上生成的,因此其根结点可以是这棵树上的任意一个结点。kruskal和prim算法...

2019-05-03 20:24:11 183

原创 12-二叉搜索树 13-红黑树 18-B树

参考:《算法导论》第12、13章二叉搜索树二叉搜索树上的每个基本操作都能在O(h)时间内完成,随着元素的插入和删除,二叉搜索树的高度是变化的。定义 某结点的左子树的结点都小于它,右子树的结点都大于等于它。查找 在一棵二叉树中查找一个具有给定关键字的结点后继 结点x的后继是大于x.key的最小关键字的结点 ①x的右子树...

2019-04-29 11:10:52 194

原创 Git+GitHub 入门级操作(实践有效)

Git入门Git 属于分散型版本管理系统,是为版本管理而设计的软件。它是由Linux 的创始人 Linus Torvalds 在 2005 年开发了的原型程序发展而来。Git和GitHub的理解和基本操作下面这篇博客的内容很全,推荐:一篇文章搞定Git、GitHub的理解和使用利用 SSH 完成 Git 与 GitHub 的绑定 测试ssh k...

2019-04-20 11:07:39 253

原创 16-贪心/贪婪 算法 greedy algorithm

参考:《算法导论》第16章贪心算法:在对问题求解时,总是做出在当前看来是最好的选择。贪心算法的基本思路: 1.建立数学模型来描述问题。 2.把求解的问题分成若干个子问题。 3.对每一子问题求解,得到子问题的局部最优解。 4.把子问题的解局部最优解合成原来解问题的一个解。活动选择问题:贪心算法最经典的例子:给出n个任务和每个任务的开始和结束时间,找...

2019-03-30 20:04:33 580

原创 博弈学习

1067 北大OJ有两堆石子,数量任意,可以不同。游戏开始由两个人轮流取石子。游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子;二是可以在两堆中同时取走相同数量的石子。最后把石子全部取完者为胜者。现在给出初始的两堆石子的数目,如果轮到你先取,假设双方都采取最好的策略,问最后你是胜者还是败者。威佐夫博弈(Wythoff's game)有两堆各若干个物品,两个人...

2019-03-25 15:58:12 141

原创 STL的基本操作

目录STLqueue队列priority_queue优先队列MapMultimapvector集合stack栈setDequeSTL标准模板库,stl现在是c++的一部分,因此不需要安装额外的库文件。在C++标准中,STL被组织为下面的13个头文件:<algorithm>、<deque>、<functional>、...

2019-03-25 15:48:58 526

原创 22-广搜深搜 Breadth-first Search Depth-first Search

参考:《算法导论》第22章 《算法图解》第6章目录图G=(V,E)广度优先搜索一:模板(POJ 3984 迷宫问题)(bfs+输出路径)二:闪现(类似问题http://poj.org/problem?id=3278)(bfs+输出最少步数)三:走迷宫(牛客网)(bfs+输出最少步数)四:油田(这个题目比上面两个更灵活)五:prime path(http://poj...

2019-03-18 15:53:19 673

原创 机器学习(幂次学院)笔记

GitHub项目推荐:https://github.com/MLEveryday/100-Days-Of-ML-Code机器学习常见面试题整理:http://kubicode.me/2015/08/16/Machine%20Learning/Common-Interview/有监督学习和无监督学习的区别有监督学习:对具有标记的训练样本进行学习,以尽可能对训练样本集外的数据进行分类预测...

2019-03-17 16:47:19 1269

原创 动态规划 Dynamic Programming

参考:《算法图解》第9章 《算法导论》第15章目录动态规划一:Balance(http://poj.org/problem?id=1837)——01背包二:Dividing(http://poj.org/problem?id=1014)——多重背包三:Pearls(http://poj.org/problem?id=1260)——一维数组四:Palindrome(ht...

2019-03-11 21:44:44 246

Git和GitHub.rar

GitHub入门与实践 精通Git(第二版简体中文) 一共上述两本入门书籍

2019-06-21

空空如也

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

TA关注的人

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