基础算法题 —— 计算字符串的编辑距离(动态规划) 在题目所求的编辑距离是指字符串 a 转换成字符串 b 所需最小的操作步骤。a[i] != b[j] 时,要使 a[i] == b[j] 可使用的操作步骤如下:①、a[i] 可替换成 b[j]。②、字符串 a 下标为 i 的位置插入字符 b[j],a[i+1] = 原a[i]…。③、字符串 b 下标为 j 的位置插入字符 a[i],b[j+1] = 原b[j]…。由于字符串可以通过“插入”字符的操作进行改变,要得到相同的两个字符串就要从串头到串尾进行匹配。利用这一特点我们可以利用动态规划的思路来解决。
基础算法题 —— 购物单 (0/1背包 变形) 根据题目我们可以知道主件和附件存在着一定的关系:若要拿附件就必须拿主件。如果将主件和附件分开来看,在考虑是否拿附件的时不便于确定主件最终结果是否被选中。更好的解题思路是将主件与附件作为一个整体,在考虑某主件是否被选的过程同时考虑该主件的附件是否被选。...
基础算法题 —— 合唱队(最长递增子序列) ①、枚举每个位置左右侧分别所能站的做多人自左向右递增:求每个位置左边最多可站多少人(含自己)— dp1自右向左递增:求每个位置右边最多可站多少人(含自己)— dp2②、选择第 i 个位置不移动的情况下,合唱队所能站的人数:dp1[i]+dp2[i]-1合唱队最多人:Max_ = dp1[i]+dp2[i]-1③、组成合唱队移除最少人:n - Max_...
Camera:双目成像原理 参考文章1、理想双目相机成像模型计算深度基本原理左右两个相机位于同一平面(光轴平行),且相机参数(如焦距f)一致。深度:z = f * b / d计算深度所需数据如下(1)、基线 b、焦距 f 可通过相机标定获得。(2)、相机视差d,即左相机的每个像素点(xl, yl)和右相机中对应点(xr, yr)的对应关系,可通过极线约束及图像匹配算法对两个相机的像素点进行快速地匹配。极线约束极线约束(Epipolar Constraint)就是指在理想模型下,当同一个空间点在两幅图像上分别成像时,已
Linux:什么是 Makefile ? Makefile 功能Makefile 可以使项目实现自动化编译,不用每次都输入指定的源文件和参数。一个 Makefile 包含描述了整个工程的编译和链接等规则。Makefile 优势1、 编译需要链接库、确定编译顺序若用C语言的单纯命令进行编译,编译的命令如下所示:gcc -o outfile temp.c temp1.c ...gcc 只会默认链接一些基本的C语言标准库,很多源文件依赖的标准库都需要我们手动链接。例如temp.c 用到了数学计算库 math 中的函数,需手动添加参数
WSL: Could not resolve hostname Temporary failure(无法解析域名) 原文链接WSL 无法解析域名Could not resolve hostname github.com: Temporary failure in name resolution解决方法# 1. 编辑 /etc/wsl.conf 文件$ vim /etc/wsl.conf[network]generateResolvConf = false# 2. 重启 wsl$ wsl --shutdown# 3. 启动 wsl, 拷贝保留原来的 /etc/resolv.conf文件, 创建一个新的
Linux:WSL 下 CTS 环境搭建及无法识别设备问题 WSLWindows Subsystem for Linux(简称WSL)是一个在Windows 10上能够运行原生Linux二进制可执行文件(ELF格式)的兼容层。它是由微软与Canonical公司合作开发,其目标是使纯正的Ubuntu、Debian等映像能下载和解压到用户的本地计算机,并且映像内的工具和实用工具能在此子系统上原生运行。安装步骤...
Linux:VirtualBox虚拟机下安装桌面版CentOS 下载 VirtualBox 虚拟机官网下载即可 https://www.virtualbox.org/wiki/Downloads选择合适的版本安装下载 CentOS 镜像文件华为云镜像站红框指出的镜像文件,二选一即可(Minimal 版本为最小安装,安装后只有命令行界面)在 VirtualBox 配置 CentOS 环境...
Linux:目录 根目录(/):根目录是整个系统最重要的一个目录,因为不但所有的目录都是由根目录衍生出来的,同时根目录也与开机/还原/系统修复等动作有关。在FHS的要求方面,他希望根目录不要放在非常大的分区内, 因为越大的分区你会放入越多的数据,如此一来根目录所在分区就可能会有较多发生错误的机会。根目录(/)下必须要存在的目录目录放置内容/bin常用指令。主要有cat、chmod、chown、date、mv等可被一般用户调用的指令/boot开机相关文件,包括 Linux 核心文件以及开机菜
Linux:Hello World 模块 前言Linux 系统为应用程序提供了功能强大且容易扩展的 API,但在某些情况下,这还远远不够。与硬件交互或进行需要访问系统中特权信息的操作时,就需要一个内核模块。下面从 Hello World 模块来说明模块的建立与运行。环境搭建开始编写Linux内核模块之前,我们首先要准备一些工具。最重要的是,你需要有一台Linux机器,尽管可以使用任何Linux发行版,但本文中,我使用的是Ubuntu 16.04 LTS,如果你使用的其他发行版,可能需要稍微调整安装命令。建立1、创建目录mkdir -p
Linux:修改文件属性与权限的基本命令用法 chgrp:修改文件所属组修改条件:主目录中存在所要修改的文件①、切换 root 权限②、查询主目录下存在的文件③、snap文件所属组为 root ,修改 snap 所属组为 group1④、查询是否修改成功修改成功chown:修改文件拥有者修改条件:主目录中存在所要修改的文件①、切换 root 权限②、查询主目录下存在的文件③、snap文件拥有者为 root ,修改 snap 拥有者为 bin④、查询是否修改成功修改成功chmod:修改文件权限修改条件:主目录
Linux:Linux文件属性 环境虚拟机:Virtual Box映像文件:Ubuntu获取文件信息一、切换 root 身份 — 【su -】二、列出所有文件的权限与属性 — 【ls -al】文件信息字段分析档案类型权限档案类型 | 档案拥有者 | 档案所属群组权限 | 其他人权限...
Android :Activity Activity 代表手机或平板电脑中的一屏,它提供了和用户交互的可视化界面。一个 Android 应用中,可以有多个 Activity。这些 Activity 组成了 Activity 栈(Stack),当前活动的 Activity 位于栈顶。Activity 生命周期中 4 个重要状态状态描述运行状态该 Activit
离散数学:二元关系 笛卡儿积给定两个集合 A 和 B,笛卡儿积记为 A × B = {<x, y>|x∈A, y∈B}。举例说明A = {a, b},B = {c, d},求 A × B。解: A × B = {a, b} × {c, d} = {<a, c>,<a, d>,<b, c>,<b, d>}二元关系给定两个集合 A 和 B,R 是笛卡儿积 A × B 的任意子集,则称 R 为从 A 到 B 的一个二元关系。举例说明若 A × B = {
离散数学:集合的性质 集合的划分概念:集合 X 的划分是把 X 中的全部元素分割为多个真子集。这些真子集包含集合 X 的全部元素又相互排斥。举例说明设 A = {a,b,c},则下列是集合 A 的划分的是 ( D )A.{{b,c},{c}}-------错误,划分的真子集缺少元素 a 且元素 c 重复B.{{a,b},{a,c}}----错误,划分的真子集元素 a 重复C.{{a,b},c}--------错误,元素 c 不在划分的真子集内D.{{a},{b,c}}------正确集合的对称性及反对称性对称
离散数学:主范式(主析取范式、主合取范式) 求解主析取范式、主合取范式方法①真值表法②等值演算法例题求公式 (p→q)∧(q→r) 的主析取范式和主合取范式、成真赋值。解:①真值表法pqrp→qq→r(p→q)∧(q→r)000111001111010100011111100010101010110100111111查表可得成值赋值:000、001、011、111主析取范式:∑(